summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* IR: Use HANDLE_METADATA_LEAF to define MetadataKind enum, NFCDuncan P. N. Exon Smith2016-04-201-28/+2
| | | | llvm-svn: 266839
* [libFuzzer] added -detect_leaks flag (0 by default for now). When enabled, ↵Kostya Serebryany2016-04-206-5/+103
| | | | | | it will help finding leaks while fuzzing llvm-svn: 266838
* ScoreboardHazardRecognizer: unbreak TSAN by moving a static mutated variable ↵Mehdi Amini2016-04-202-19/+8
| | | | | | | to a member From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266837
* Add 'is_callable' and 'is_nothrow_callable' traits and cleanup INVOKE.Eric Fiselier2016-04-2015-231/+726
| | | | | | | | | | | | The primary purpose of this patch is to add the 'is_callable' traits. Since 'is_nothrow_callable' required making 'INVOKE' conditionally noexcept I also took this oppertunity to implement a constexpr version of INVOKE. This fixes 'std::experimental::apply' which required constexpr 'INVOKE support'. This patch will be followed up with some cleanup. Primarly removing most of "__member_function_traits" since it's no longer used by INVOKE (in C++11 at least). llvm-svn: 266836
* IR: Use std::vector instead of SmallPtrSet for distinct nodes, NFCDuncan P. N. Exon Smith2016-04-192-4/+5
| | | | | | | | | We never use the set-ness of SmallPtrSet for distinct nodes. Eventually we may start garbage-collecting or reference-counting nodes (in which cases we'd want to remove things from this collection, and a fast erase would be valuable), but in the meantime a vector is sufficient. llvm-svn: 266835
* [LLVM] Remove unwanted --check-prefix=CHECK from unit tests. NFC.Mandeep Singh Grang2016-04-1969-74/+74
| | | | | | | | | | | | Summary: Removed unwanted --check-prefix=CHECK from numerous unit tests. Reviewers: t.p.northover, dblaikie, uweigand, MatzeB, tstellarAMD, mcrosier Subscribers: mcrosier, dsanders Differential Revision: http://reviews.llvm.org/D19279 llvm-svn: 266834
* [Mips] [MSan] VarArgMIPS64Helper: Use target's endian, not host's.Marcin Koscielnicki2016-04-191-6/+7
| | | | | | | | Ugh. Differential Revision: http://reviews.llvm.org/D19292 llvm-svn: 266833
* llvm::sys::path::home_directory() relies on having "HOME" set in the ↵Greg Clayton2016-04-192-1/+75
| | | | | | | | | | environment and that might not always be set. Our FileSpec class uses this function to resolve any paths that start with "~/" on systems that support home directories as '~'. I have modified FileSpec::ResolveUsername (llvm::SmallVectorImpl<char> &path) to deal with the cases where llvm::sys::path::home_directory() returns false by digging a little further on unix systems and setting "HOME" in the environment so that subsequent calls to llvm::sys::path::home_directory() will succeed. I also added a test to ensure we don't regress. <rdar://problem/25342377> llvm-svn: 266832
* Simplify mips got handling.Rafael Espindola2016-04-196-17/+21
| | | | | | | This avoids computing the address of a position in the got just to then subtract got->getva(). llvm-svn: 266831
* [libFuzzer] more trophiesKostya Serebryany2016-04-191-0/+7
| | | | llvm-svn: 266830
* [Parse] Reuse OptionUnroll rather than matching it again. NFCAdam Nemet2016-04-191-2/+1
| | | | llvm-svn: 266829
* ARM: fix assertion failure on -O0 cmpxchg.Tim Northover2016-04-192-7/+30
| | | | | | | | Because lowering of CMP_SWAP_64 occurs during type legalization, there can be i64 types produced by more than just a BUILD_PAIR or similar. My initial tests used just incoming function args. llvm-svn: 266828
* [Parse] Use StringSwitch to improve readability. NFCAdam Nemet2016-04-191-4/+8
| | | | | | | | A subsequent patch will propose a "distribute" loop hint. Similarly to unroll, this does not have a "assume_safety" argument either so this condition will get more complex. llvm-svn: 266827
* Add IntrWrite[Arg]Mem intrinsic propertyNicolai Haehnle2016-04-199-41/+72
| | | | | | | | | | | | | | | | | | | | | | Summary: This property is used to mark an intrinsic that only writes to memory, but neither reads from memory nor has other side effects. An example where this is useful is the llvm.amdgcn.buffer.store.format.* intrinsic, which corresponds to a store instruction that goes through a special buffer descriptor rather than through a plain pointer. With this property, the intrinsic should still be handled as having side effects at the LLVM IR level, but machine scheduling can make smarter decisions. Reviewers: tstellarAMD, arsenm, joker.eph, reames Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D18291 llvm-svn: 266826
* AMDGPU: Guard VOPC instructions against incorrect commuteNicolai Haehnle2016-04-192-3/+52
| | | | | | | | | | | | | | Summary: The added testcase, which triggered this, was derived from a shader-db case via bugpoint. A separate question is why scalar branching wasn't used. Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D19208 llvm-svn: 266825
* AMDGPU/SI: SGPR accounting in getSIProgramInfo must ignore exec_lo/hiNicolai Haehnle2016-04-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | Summary: A shader stored the live mask (initial exec mask) in an SGPR which was then spilled during register allocation. The allocator quite reasonably optimized turned the spill into v_writelane_b32 %vgpr, exec_lo, N v_writelane_b32 %vgpr, exec_hi, N+1 at the beginning of the shader, confusing the SGPR accounting. No test case, because si-sgpr-spill.ll together with an upcoming patch for WQM handling exhibits the problem. Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D19199 llvm-svn: 266824
* [TableGen] Make an error message slightly more informativeNicolai Haehnle2016-04-191-2/+9
| | | | | | | | | | Reviewers: ab, spop, stoklund Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19192 llvm-svn: 266823
* Remove duplicated header contents, NFCVedant Kumar2016-04-191-102/+0
| | | | | | | It looks like InstrProfiling.h was the victim of a bad merge. The header guards in the file prevented the build from blowing up. llvm-svn: 266822
* [Hexagon] Fix operand swapping in HexagonPeepholeKrzysztof Parzyszek2016-04-192-2/+34
| | | | | | Also, disable zero- and size-extend optimizations for now. llvm-svn: 266821
* XFAILing new test on C++03Ben Craig2016-04-191-0/+1
| | | | | | initializer_list doesn't exist in C++03. llvm-svn: 266820
* Document how a binary file was created.Rafael Espindola2016-04-191-0/+6
| | | | llvm-svn: 266819
* [AArch64] [ARM] Make a target-independent llvm.thread.pointer intrinsic.Marcin Koscielnicki2016-04-1912-18/+71
| | | | | | | | | | | | | | Both AArch64 and ARM support llvm.<arch>.thread.pointer intrinsics that just return the thread pointer. I have a pending patch that does the same for SystemZ (D19054), and there are many more targets that could benefit from one. This patch merges the ARM and AArch64 intrinsics into a single target independent one that will also be used by subsequent targets. Differential Revision: http://reviews.llvm.org/D19098 llvm-svn: 266818
* [AArch64] Fix D19098 fallout.Marcin Koscielnicki2016-04-192-6/+1
| | | | | | | | | | The intrinsic is now called llvm.thread.pointer, not llvm.aarch64.thread.pointer. Also, the code handling it in CGBuiltin.cpp is dead - it's already covered by GCCBuiltin. Remove it. Differential Revision: http://reviews.llvm.org/D19099 llvm-svn: 266817
* Make a function file-scoped.Rui Ueyama2016-04-191-1/+1
| | | | llvm-svn: 266816
* Eliminate circular dependency introduced between lldbtest.py and decorators.pyKate Stone2016-04-191-3/+2
| | | | llvm-svn: 266815
* cc1as: Don't crash when CIE is requested and no DWARF version is specified.Adrian Prantl2016-04-192-1/+38
| | | | | | | | | This patch changes the default DWARF version for cc1as from invalid 0 to 2, which should be the lowest common denominator on all platforms. rdar://problem/24735813 llvm-svn: 266814
* [compiler-rt] Remove unwanted --check-prefix=CHECK from unit tests. NFC.Mandeep Singh Grang2016-04-192-2/+2
| | | | | | | | | | | | | | | Summary: Removed unwanted --check-prefix=CHECK from the following unit tests: test/asan/TestCases/Posix/start-deactivated.cc test/tsan/Darwin/ignored-interceptors.mm Patch by: Mandeep Singh Grang (mgrang) Reviewers: samsonov, kcc, dvyukov, eugenis Differential Revision: http://reviews.llvm.org/D19281 llvm-svn: 266813
* [Orc] Add move ops for OrcRemoteTargetClient and OrcRemoteTargetServer toLang Hames2016-04-192-0/+31
| | | | | | appease MSVC. llvm-svn: 266812
* [Hexagon] Fix printing the address operand of S2_storerinewabsKrzysztof Parzyszek2016-04-193-10/+25
| | | | llvm-svn: 266811
* Fix pr27420.Rafael Espindola2016-04-193-0/+19
| | | | | | | Return the right expression for R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX. llvm-svn: 266810
* [PPC, SSP] Support PowerPC Linux stack protection.Tim Shen2016-04-1911-26/+64
| | | | llvm-svn: 266809
* Include initializer_list from utilityBen Craig2016-04-192-0/+21
| | | | | | | The C++11 and C++14 standards both say in the header <utility> synopsis that <utility> shall include <initializer_list>. llvm-svn: 266808
* [ARM NEON] Define vfms_f32 on ARM, and all vfms using vfma.Ahmed Bougacha2016-04-197-121/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r259537 added vfma/vfms to armv7, but the builtin was only lowered on the AArch64 side. Instead of supporting it on ARM, get rid of it. The vfms builtin lowered to: %nb = fsub float -0.0, %b %r = @llvm.fma.f32(%a, %nb, %c) Instead, define the operation in terms of vfma, and swap the multiplicands. It now lowers to: %na = fsub float -0.0, %a %r = @llvm.fma.f32(%na, %b, %c) This matches the instruction more closely, and lets current LLVM generate the "natural" operand ordering: fmls.2s v0, v1, v2 instead of the crooked (but equivalent): fmls.2s v0, v2, v1 Except for theses changes, assembly is identical. LLVM accepts both commutations, and the LLVM tests in: test/CodeGen/AArch64/arm64-fmadd.ll test/CodeGen/AArch64/fp-dp3.ll test/CodeGen/AArch64/neon-fma.ll test/CodeGen/ARM/fusedMAC.ll already check either the new one only, or both. Also verified against the test-suite unittests. llvm-svn: 266807
* [SSP, 2/2] Create llvm.stackguard() intrinsic and lower it to LOAD_STACK_GUARDTim Shen2016-04-1918-99/+209
| | | | | | | | | | | | | | | | | | | | | | | With this change, ideally IR pass can always generate llvm.stackguard call to get the stack guard; but for now there are still IR form stack guard customizations around (see getIRStackGuard()). Future SSP customization should go through LOAD_STACK_GUARD. There is a behavior change: stack guard values are not CSEed anymore, since we should never reuse the value in case that it has been spilled (and corrupted). See ssp-guard-spill.ll. This also cause the change of stack size and codegen in X86 and AArch64 test cases. Ideally we'd like to know if the guard created in llvm.stackprotector() gets spilled or not. If the value is spilled, discard the value and reload stack guard; otherwise reuse the value. This can be done by teaching register allocator to know how to rematerialize LOAD_STACK_GUARD and force a rematerialization (which seems hard), or check for spilling in expandPostRAPseudo. It only makes sense when the stack guard is a global variable, which requires more instructions to load. Anyway, this seems to go out of the scope of the current patch. llvm-svn: 266806
* [Orc] Add explicit move ops to OrcRemoteTargetRPCAPI for MSVC.Lang Hames2016-04-191-0/+11
| | | | llvm-svn: 266805
* [Orc] Fix missing return in RPC move assignment operator.Lang Hames2016-04-191-0/+1
| | | | llvm-svn: 266804
* Fixed a bug in AnnotatedLine::startsWith when there are comments in the line.Eric Liu2016-04-191-4/+13
| | | | | | | | | | | | Summary: When there are comments in the line, one token may be checked multiple times. Reviewers: mprobst, djasper Subscribers: ioeric, cfe-commits, klimek Differential Revision: http://reviews.llvm.org/D19106 llvm-svn: 266803
* [lanai] Add lowering for SETCCE i32.Jacques Pienaar2016-04-195-35/+177
| | | | | | | | * Add lowering for SETCCE i32. * Add test to check lowering of i64 compares uses SETCCE expansion (outside of EQ and NE). * Fix select.ll test and immediate form selection for RI operations. llvm-svn: 266802
* [ValueTracking, VectorUtils] Refactor getIntrinsicIDForCallDavid Majnemer2016-04-198-179/+185
| | | | | | | | | | | | | The functionality contained within getIntrinsicIDForCall is two-fold: it checks if a CallInst's callee is a vectorizable intrinsic. If it isn't an intrinsic, it attempts to map the call's target to a suitable intrinsic. Move the mapping functionality into getIntrinsicForCallSite and rename getIntrinsicIDForCall to getVectorIntrinsicIDForCall while reimplementing it in terms of getIntrinsicForCallSite. llvm-svn: 266801
* ObjC Class Property: don't emit class properties on old deployment targets.Manman Ren2016-04-192-2/+22
| | | | | | | | For old deployment targets, emit nil for all class property lists. rdar://25616128 llvm-svn: 266800
* Attempt to fix buildbot.Rui Ueyama2016-04-191-1/+1
| | | | llvm-svn: 266799
* ELF: Add +, -, *, / and & to SECTIONS linker script command.Rui Ueyama2016-04-193-71/+248
| | | | | | | | | | | | | | | This patch is based heavily on George Rimor's patch http://reviews.llvm.org/D19221. In the linker script, you can write expressions to compute addresses. Currently we only support "+" operator. This adds a few more operators. Since this patch adds * and /, we need to handle operator precedences properly. I implemented that using the operator-precedence grammar. Differential Revision: http://reviews.llvm.org/D19237 llvm-svn: 266798
* Fix PR26999 better- RenderDebugEnablingArgs() once onlyDouglas Katzman2016-04-191-22/+22
| | | | llvm-svn: 266797
* [CUDA] Add a test for r266496 (raise an error if a CUDA installation isn't ↵Justin Lebar2016-04-191-0/+12
| | | | | | found) llvm-svn: 266796
* [Clang-tidy] Fix extra semicolon warning in ↵Eugene Zelenko2016-04-191-2/+2
| | | | | | cppcoreguidelines/ProTypeMemberInitCheck.cpp. llvm-svn: 266795
* [X86] Simplify StackMapShadowTracker; NFCSanjoy Das2016-04-192-38/+27
| | | | | | | | - Elide trivial contructor and desctructor - Move implementation out of an unnecessary explicit llvm namespace scope llvm-svn: 266794
* [X86MCInstLower] Clean up EmitNops; NFCSanjoy Das2016-04-191-51/+68
| | | | | | | Instead of having a conditional assert inside EmitNops, refactor so that the caller can have the assert instead. llvm-svn: 266793
* [Hexagon] Implement branch relaxationKrzysztof Parzyszek2016-04-193-0/+215
| | | | | | Patch by Sirish Pande. llvm-svn: 266792
* Adds a test to detect when clang omits specialized generic types from debug ↵Kate Stone2016-04-196-0/+118
| | | | | | information when using precompiled headers and -gmodules. llvm-svn: 266791
* reuse mustBeJSIdent for interface detectionMartin Probst2016-04-191-7/+8
| | | | llvm-svn: 266790
OpenPOWER on IntegriCloud