summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* HowToReleaseLLVM: Add information about dot releasesTom Stellard2014-02-041-6/+15
| | | | | | | Based on the following discussion: http://llvm.1065342.n5.nabble.com/LLVM-3-4-stable-releases-td65005.html llvm-svn: 200772
* OS X: the correct function is __sincospif_stret, not __sincospi_stretfTim Northover2014-02-044-10/+10
| | | | | | rdar://problem/13729466 llvm-svn: 200771
* ARM & AArch64: merge NEON absolute compare intrinsicsTim Northover2014-02-047-83/+52
| | | | | | | | There was an extremely confusing proliferation of LLVM intrinsics to implement the vacge & vacgt instructions. This combines them all into two polymorphic intrinsics, shared across both backends. llvm-svn: 200768
* Implemented support for Process::GetRandomNumber on Windows.Aaron Ballman2014-02-043-0/+19
| | | | | | Patch thanks to Stephan Tolksdorf! llvm-svn: 200767
* [CMake] Get rid of llvm_config() to expand dependencies.NAKAMURA Takumi2014-02-041-1/+1
| | | | | | | | CMake's target_link_libraries() will manage dependencies. Configuration time may be reduced by a few seconds. llvm-svn: 200765
* [CMake] LLVM-Config.cmake: Split explicit_map_components_to_libraries and ↵NAKAMURA Takumi2014-02-041-3/+16
| | | | | | introduce llvm_map_components_to_libnames and llvm_expand_dependencies. llvm-svn: 200764
* [CMake] add_llvm_loadable_module: Fixup r200762, I mis-eliminated wrong line. :(NAKAMURA Takumi2014-02-041-0/+1
| | | | llvm-svn: 200763
* Revert r122395, "Fixes file extension for loadable modules on OS X."NAKAMURA Takumi2014-02-041-8/+1
| | | | | | | | | In trunk, every users assume add_llvm_loadable_module as "loadable module" and no one sets neither SHARED, ... nor also MODULE! Unfortunately, all loadable modules were linked as not "MODULE" but "SHARED". If this change caused any regressions, I wish guys to fix it properly. ;) llvm-svn: 200762
* Add a note to documentation that Clang + libstdc++ 4.7.2 can not be used to ↵Dmitri Gribenko2014-02-041-0/+5
| | | | | | build LLD. llvm-svn: 200758
* llvm-cov: Implement the preserve-paths flagJustin Bogner2014-02-0414-20/+184
| | | | | | | | | | | | | | | | Until now, when a path in a gcno file included a directory, we would emit our .gcov file in that directory, whereas gcov always emits the file in the current directory. In doing so, this implements gcov's strange name-mangling -p flag, which is needed to avoid clobbering files when two with the same name exist in different directories. The path mangling is a bit ugly and only handles unix-like paths, but it's simple, and it doesn't make any guesses as to how it should behave outside of what gcov documents. If we decide this should be cross platform later, we can consider the compatibility implications then. llvm-svn: 200754
* ARM: fix fast-isel assertion failureTim Northover2014-02-042-1/+13
| | | | | | | | | Missing braces on if meant we inserted both ARM and Thumb load for a litpool entry. This didn't end well. rdar://problem/15959157 llvm-svn: 200752
* [CMake] Revert r200695 and fix the problem with missing ↵Alexey Samsonov2014-02-041-10/+12
| | | | | | -fno-function-sections in a different way. llvm-svn: 200745
* [CMake] Add -stdlib=libc++ to host Clang build flags before performing any ↵Alexey Samsonov2014-02-043-17/+27
| | | | | | | | | | | | header search If LLVM_ENABLE_LIBCXX is specified, we should append -stdlib=libc++ to build flags as early as possible, in particular, before we check for header presence (as -stdlib=libc++ modifies header lookup rules). Otherwise we can find a header at configure time (w/o -stdlib=libc++) but fail to find it at build time (with -stdlib=libc++). See PR18569 for more details. llvm-svn: 200744
* R600/SI: Fix fneg for 0.0Michel Danzer2014-02-044-18/+87
| | | | | | | | | | | | V_ADD_F32 with source modifier does not produce -0.0 for this. Just manipulate the sign bit directly instead. Also add a pattern for (fneg (fabs ...)). Fixes a bunch of bit encoding piglit tests with radeonsi. Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 200743
* llvm-cov: Implement the object-directory flagJustin Bogner2014-02-044-2/+107
| | | | llvm-svn: 200741
* llvm-cov: Ignore missing .gcda filesJustin Bogner2014-02-045-7/+112
| | | | | | | | When gcov is run without gcda data, it acts as if the counts are all zero and labels the file as - to indicate that there was no data. We should do the same. llvm-svn: 200740
* llvm-cov: Document the llvm-cov testsJustin Bogner2014-02-041-9/+31
| | | | llvm-svn: 200739
* RegAllocGreedy.cpp: Use more simple value as Hysteresis, to suppress ↵NAKAMURA Takumi2014-02-041-1/+1
| | | | | | -mfpmath-dependent behavior. llvm-svn: 200738
* Revert: ARM: Enable use of relocation type tlsldo in debug info for tls data.Kai Nacke2014-02-043-35/+0
| | | | | | | There seems to be a new problem with the debug info in the test case. I'll have to investigate this. llvm-svn: 200737
* Add strchr(p, 0) -> p + strlen(p) to SimplifyLibCallsKai Nacke2014-02-042-3/+17
| | | | | | | | Add the missing transformation strchr(p, 0) -> p + strlen(p) to SimplifyLibCalls and remove the ToDo comment. Reviewer: Duncan P.N. Exan Smith llvm-svn: 200736
* ARM: Enable use of relocation type tlsldo in debug info for tls data.Kai Nacke2014-02-043-0/+35
| | | | | | | This fixes PR18554. Reviewers: Renato Golin, Keith Walker llvm-svn: 200735
* DebugInfo: Remove some unneeded conditionals now that DIBuilder no longer ↵David Blaikie2014-02-04116-158/+157
| | | | | | | | | | | emits zero-length arrays as {i32 0} A bunch of test cases needed to be cleaned up for this, many my fault - when implementid imported modules I updated test cases by simply duplicating the prior metadata field - which wasn't always the empty metadata entry. llvm-svn: 200731
* Revert r200150, "[CMake] tablegen(): Use -I <dir> according to the list by ↵NAKAMURA Takumi2014-02-041-17/+5
| | | | | | | | | include_directories()." It missed include/llvm/Target. Could I avoid GLOB_RECURSE anyways? :( FYI, I intended to prune ${LLVM_MAIN_INCLUDE_DIR} in TableGen.cmake in r200150. llvm-svn: 200730
* Move error handling down to getSymbolNMTypeChar.Rafael Espindola2014-02-041-54/+30
| | | | llvm-svn: 200727
* Self-memcpy-elision and memcpy of constant byte to memset transforms don't ↵Nick Lewycky2014-02-041-4/+7
| | | | | | care how many bytes you were trying to transfer. Sink that safety test after those transforms. Noticed by inspection. llvm-svn: 200726
* DIBuilder: simplify array generation to produce true zero-length arraysDavid Blaikie2014-02-031-4/+0
| | | | | | | | | | | | For some anachronistic reason we were producing {i32 0} for zero-length debug info arrays. (this change is paired with a Clang change and may cause temporary buildbot noise) Let's not. llvm-svn: 200721
* Add DEBUG_TYPE to SIAnnotateControlFlowMatt Arsenault2014-02-031-0/+2
| | | | llvm-svn: 200720
* inalloca: Don't remove dead arguments in the presence of inalloca argsReid Kleckner2014-02-032-0/+23
| | | | | | | | | | | | It disturbs the layout of the parameters in memory and registers, leading to problems in the backend. The plan for optimizing internal inalloca functions going forward is to essentially SROA the argument memory and demote any captured arguments (things that aren't trivially written by a load or store) to an indirect pointer to a static alloca. llvm-svn: 200717
* AArch64 & ARM: refactor crypto intrinsics to take scalarsTim Northover2014-02-036-101/+145
| | | | | | | | | | | | Some of the SHA instructions take a scalar i32 as one argument (largely because they work on 160-bit hash fragments). This wasn't reflected in the IR previously, with ARM and AArch64 choosing different types (<4 x i32> and <1 x i32> respectively) which was ugly. This makes all the affected intrinsics take a uniform "i32", allowing them to become non-polymorphic at the same time. llvm-svn: 200706
* Expand vector bswap in LegalizeVectorOpsHal Finkel2014-02-032-0/+20
| | | | | | | ISD::BSWAP was missing from the list of node types that should be expanded element-wise. llvm-svn: 200705
* Undef'ing _WIN32_IE to silence an MSVC warning about redefining a macro value.Aaron Ballman2014-02-031-0/+1
| | | | | | No functional change intended. llvm-svn: 200704
* Add a note about Clang+LLVM on Sparc64.Venkatraman Govindaraju2014-02-031-0/+3
| | | | llvm-svn: 200699
* Remove outdated & incorrect part of comment.Eli Bendersky2014-02-031-3/+1
| | | | | | This comment was copied over from another class in r34170, where it made sense. llvm-svn: 200697
* Don't use -ffunction-sections if -fno-function-sections is not supported in ↵Evgeniy Stepanov2014-02-031-1/+11
| | | | | | | | | the compiler. This will disable -ffunction-sections in older versions of Clang where it breaks build of sanitizer runtime library. llvm-svn: 200695
* Introduce SmallPtrSetImpl<T *> which allows insert, erase, count, andChandler Carruth2014-02-031-22/+45
| | | | | | | | iteration. This alows the majority of operations to be performed without encoding a specific small size. It follows the model of SmallVectorImpl<T>. llvm-svn: 200688
* Rename the non-templated base class of SmallPtrSet toChandler Carruth2014-02-032-34/+36
| | | | | | | | | | | 'SmallPtrSetImplBase'. This more closely matches the organization of SmallVector and should allow introducing a SmallPtrSetImpl which serves the same purpose as SmallVectorImpl: isolating the element type from the particular small size chosen. This in turn allows a lot of simplification of APIs by not coding them against a specific small size which is rarely needed. llvm-svn: 200687
* Remove unnecessary include of AArch64GenInstrInfo.inc from ↵Craig Topper2014-02-031-1/+0
| | | | | | AArch64Disassembler.cpp. None of the GET_ defines were set that would make the include do anything. llvm-svn: 200677
* Lower llvm.expect intrinsic correctly for i1Duncan P. N. Exon Smith2014-02-023-5/+51
| | | | | | | | | | LowerExpectIntrinsic previously only understood the idiom of an expect intrinsic followed by a comparison with zero. For llvm.expect.i1, the comparison would be stripped by the early-cse pass. Patch by Daniel Micay. llvm-svn: 200664
* Unaligned access is supported on ARMv6 and ARMv7 for the NetBSD target.Joerg Sonnenberger2014-02-022-3/+7
| | | | | | Patch from Matt Thomas. llvm-svn: 200654
* [CMake] Move cmake_minimum_required(2.8.8) at the top.NAKAMURA Takumi2014-02-021-1/+1
| | | | | | Suggested by Stephen Kelly. llvm-svn: 200645
* [CMake] Untabify.NAKAMURA Takumi2014-02-022-20/+20
| | | | llvm-svn: 200644
* TableGen/X86RecognizableInstr.h: Prune out-of-date "@param isSSE". ↵NAKAMURA Takumi2014-02-021-4/+0
| | | | | | [-Wdocumentation] llvm-svn: 200628
* Merge x86 HasOpSizePrefix/HasOpSize16Prefix into a 2-bit OpSize field with 0 ↵Craig Topper2014-02-0215-576/+569
| | | | | | meaning no 0x66 prefix in any mode. Rename Opsize16->OpSize32 and OpSize->OpSize16. The classes now refer to their operand size rather than the mode in which they need a 0x66 prefix. Hopefully can merge REX_W into this as OpSize64. llvm-svn: 200626
* Simplify some code since VEX and EVEX instructions never have HasOpSizePrefix.Craig Topper2014-02-021-10/+10
| | | | llvm-svn: 200625
* Merge HasVEXPrefix/HasEVEXPrefix/HasXOPPrefix into a 2-bit 'encoding' field ↵Craig Topper2014-02-028-171/+200
| | | | | | in TSFlags. llvm-svn: 200624
* Replace PPC instruction-size code with MCInstrDesc getSizeHal Finkel2014-02-022-20/+11
| | | | | | | | | | As part of the cleanup done to enable the disassembler, the PPC instructions now have a valid Size description field. This can now be used to replace some custom logic in a few places to compute instruction sizes. Patch by David Wiberg! llvm-svn: 200623
* LoopVectorizer: Enable unrolling of conditional stores and the load/storeArnold Schwaighofer2014-02-022-3/+6
| | | | | | | | | unrolling heuristic per default Benchmarking on x86_64 (thanks Chandler!) and ARM has shown those options speed up some benchmarks while not causing any interesting regressions. llvm-svn: 200621
* Add some xfailed R600 tests for 64-bit private accesses.Matt Arsenault2014-02-022-0/+67
| | | | llvm-svn: 200620
* R600/SI: Fix insertelement with dynamic indices.Matt Arsenault2014-02-022-18/+186
| | | | | | | | This didn't work for any integer vectors, and didn't work with some sizes of float vectors. This should now work with all sizes of float and i32 vectors. llvm-svn: 200619
* [Sparc] Set %o7 as the return address register instead of %i7 in ↵Venkatraman Govindaraju2014-02-013-4/+31
| | | | | | MCRegisterInfo. Also, add CFI instructions to initialize the frame correctly. llvm-svn: 200617
OpenPOWER on IntegriCloud