summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AMDGPU/SI: Insert wait states required after v_readfirstlane on SITom Stellard2016-04-123-0/+8
| | | | | | | | | | | | | | | | | Summary: We will be able to handle this case much better once the hazard recognizer is finished, but this conservative implementation fixes a hang with the piglit test: spec/arb_arrays_of_arrays/execution/sampler/fs-nested-struct-arrays-nonconst-nested-arra Reviewers: arsenm, nhaehnle Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D18988 llvm-svn: 266105
* AMDGPU: Eliminate half of i64 or if one operand is zero_extend from i32Matt Arsenault2016-04-122-0/+71
| | | | | | | | | | This helps clean up some of the mess when expanding unaligned 64-bit loads when changed to be promote to v2i32, and fixes situations where or x, 0 was emitted after splitting 64-bit ors during moveToVALU. I think this could be a generic combine but I'm not sure. llvm-svn: 266104
* Initialize the Python script interpreter lazily (i.e. not at debugger startup)Enrico Granata2016-04-122-4/+5
| | | | | | This time it should also pass the gtests llvm-svn: 266103
* [IR/Verifier] Each DISubprogram with isDefinition: true must belong to a CU.Davide Italiano2016-04-122-0/+38
| | | | | | | | | | | Add a check to catch violations. ~60 tests were broken and prevented this change to be committed. Adrian and I (thanks Adrian!) went through them in the last week or so updating. The check can be done more efficiently but I'd still like to get this in ASAP to avoid more broken tests to be checked in (if any). PR: 27101 llvm-svn: 266102
* APInt: Add overload of isMaskMatt Arsenault2016-04-122-0/+24
| | | | | | | This mimics the version in MathExtras.h which isn't testing for a specific mask size. llvm-svn: 266101
* [CodeGen] Remove constant-folding dead code. NFC.Ahmed Bougacha2016-04-121-12/+4
| | | | | | | | | | | This code was specific to vector operations with scalar operands: all the opcodes in FoldValue (via FoldConstantArithmetic) can't match those criteria. Replace it with an assert if that ever changes: at that point, we might need to add back a splat BUILD_VECTOR. llvm-svn: 266100
* Check alloca's special stateJF Bastien2016-04-121-0/+4
| | | | | | Following up to a similar fix in MergeFunctions: r266022. This patch keeps both in sync, it would be nice to not have to do this. It doesn't look like there's an easy way to test this code directly at the moment: AFAICT all currect uses of isSameOperationAs are looking at instructions deep inside a function. IndVarSimplify/pr24952.ll and InstMerge/st_sink_* look at alloca inadvertently but are brittle tests. llvm-svn: 266099
* Introduce an GCRelocateInst class [NFC]Philip Reames2016-04-126-25/+41
| | | | | | Previously, we were using isGCRelocate predicates. Using a subclass of IntrinsicInst is far more idiomatic. The refactoring also enables a couple of minor simplifications and code sharing. llvm-svn: 266098
* fix indentation; NFCSanjay Patel2016-04-121-12/+12
| | | | llvm-svn: 266097
* [FIX] Check the invalid context agains the context to rule out SCoPsJohannes Doerfert2016-04-122-0/+71
| | | | llvm-svn: 266096
* Stricter checks in the stack-protector codegen test.Evgeniy Stepanov2016-04-121-2/+2
| | | | llvm-svn: 266095
* Breakpoint conditions were making result variables, which they should not do. Jim Ingham2016-04-128-24/+48
| | | | | | | | | | | | | | The result variables aren't useful, and if you have a breakpoint on a common function you can generate a lot of these. So I changed the code that checks the condition to set ResultVariableIsInternal in the EvaluateExpressionOptions that we pass to the execution. Unfortunately, the check for this variable was done in the wrong place (the static UserExpression::Evaluate) which is not how breakpoint conditions execute expressions (UserExpression::Execute). So I moved the check to UserExpression::Execute (which Evaluate also calls) and made the overridden method DoExecute. llvm-svn: 266093
* 'int' is reported as an exception on OS X not as a signal. I don't thinkJim Ingham2016-04-121-1/+1
| | | | | | this test ever succeeded on OS X. llvm-svn: 266092
* Revert 266090, needs more testing first.Nico Weber2016-04-122-2/+1
| | | | llvm-svn: 266091
* clang-cl: Expose -nostdlibinc.Nico Weber2016-04-122-1/+2
| | | | llvm-svn: 266090
* [FileManager] Don't crash if reading from stdin and stat(".") failsDavid Majnemer2016-04-121-1/+1
| | | | | | | | | | | | | addAncestorsAsVirtualDirs("<stdin>") quickly returns without doing work because "<stdin>" has no parent_path. This violates the expectation that a subsequent call to getDirectoryFromFile("<stdin>") would succeed. Instead, it fails because it uses the "." if the file has no path component. Fix this by keeping the behavior between addAncestorsAsVirtualDirs and getDirectoryFromFile symmetric. llvm-svn: 266089
* AMDGPU/SI: Fix a mis-compilation of multi-level breaksNicolai Haehnle2016-04-122-0/+57
| | | | | | | | | | | | | | | | | | Summary: Under certain circumstances, multi-level breaks (or what is understood by the control flow passes as such) could be miscompiled in a way that causes infinite loops, by emitting incorrect control flow intrinsics. This fixes a hang in dEQP-GLES3.functional.shaders.loops.while_dynamic_iterations.conditional_continue_vertex Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D18967 llvm-svn: 266088
* Do not by default minimize remarksJohannes Doerfert2016-04-123-10/+20
| | | | | | | | | | | | | We used checks to minimize the number of remarks we present to a user but these checks can become expensive, especially since all wrapping assumptions are emitted separately. Because there is not benefit for a "headless" run we put these checks under a command line flag. Thus, if the flag is not given we will emit "non-effective" remarks, e.g., duplicates and revert to the old behaviour if it is given. As this also changes the internal representation of some sets we set the flag by default for our unit tests. llvm-svn: 266087
* Support arbitrary addrspace pointers in masked load/store intrinsicsArtur Pilipenko2016-04-1212-206/+339
| | | | | | | | | | | | | | This is a resubmittion of 263158 change. This patch fixes the problem which occurs when loop-vectorize tries to use @llvm.masked.load/store intrinsic for a non-default addrspace pointer. It fails with "Calling a function with a bad signature!" assertion in CallInst constructor because it tries to pass a non-default addrspace pointer to the pointer argument which has default addrspace. The fix is to add pointer type as another overloaded type to @llvm.masked.load/store intrinsics. Reviewed By: reames Differential Revision: http://reviews.llvm.org/D17270 llvm-svn: 266086
* [Bitcode] Fix + regenerate old test so that it includes a DICompileUnit.Davide Italiano2016-04-122-1/+7
| | | | llvm-svn: 266085
* [ScheduleDAGInstrs] Handle instructions with multiple MMOsGeoff Berry2016-04-122-30/+64
| | | | | | | | | | | | | | | | | | | | | Summary: In getUnderlyingObjectsForInstr(): Don't give up on instructions with multiple MMOs, instead look through all the MMOs and if they all meet the conservative criteria previously used for single MMO instructions, then return all of the underlying objects derived from the MMOs. The change to ScheduleDAGInstrs::buildSchedGraph() is needed to avoid the case where multiple underlying objects are present and are related in such a way that successive iterations of the loop end up adding a dependency from an instruction to itself. Reviewers: atrick, hfinkel Subscribers: MatzeB, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D18093 llvm-svn: 266084
* Verify commit right by adding a blank line to ↵Yaxun Liu2016-04-121-0/+1
| | | | | | test/CodeGenOpenCL/address-spaces-conversions.cl. llvm-svn: 266083
* Test commit, NFC.Than McIntosh2016-04-121-0/+1
| | | | | | Adds a blank line. llvm-svn: 266082
* [mips] add assembler support for .set arch=octeonPetar Jovanovic2016-04-122-3/+5
| | | | | | | | | | | This patch enables assembler support for .set arch=octeon. It will fix issues with inline assembler when this directive is used. Patch by Strahinja Petrovic. Differential Revision: http://reviews.llvm.org/D18548 llvm-svn: 266081
* [tsan] Fix a crash with dispatch_source_set_cancel_handler(NULL) on OS XKuba Brecka2016-04-121-0/+12
| | | | | | | | We need to handle the case when handler is NULL in dispatch_source_set_cancel_handler and similar interceptors. Differential Revision: http://reviews.llvm.org/D18968 llvm-svn: 266080
* Moving clang-test-depends into the Clang tests folder and moving ↵Aaron Ballman2016-04-122-0/+2
| | | | | | vtables_blacklist into the Misc folder; NFC, this simply cleans up the generated solution so that these targets don't live in the root folder of the IDE. llvm-svn: 266079
* Moving llvm-test-depends and test-depends into the Tests folder; NFC, this ↵Aaron Ballman2016-04-122-0/+2
| | | | | | simply cleans up the generated solution so that these targets don't live in the root folder of the IDE. llvm-svn: 266078
* LangRef: Update example syntax for atomic load instructionMatt Arsenault2016-04-121-1/+1
| | | | llvm-svn: 266077
* Make a test a bit stronger.Rafael Espindola2016-04-121-0/+2
| | | | | | We were not testing that we handle addends in here. llvm-svn: 266076
* AMDGPU: Implement i64 global atomicsMatt Arsenault2016-04-123-14/+886
| | | | llvm-svn: 266075
* AMDGPU: Add atomic_inc + atomic_dec intrinsicsMatt Arsenault2016-04-1212-12/+614
| | | | | | | These are different than atomicrmw add 1 because they have an additional input value to clamp the result. llvm-svn: 266074
* AMDGPU: Remove trailing whitespaceMatt Arsenault2016-04-121-7/+7
| | | | llvm-svn: 266073
* Fixup TestFdLeakPavel Labath2016-04-121-3/+5
| | | | | | | this test was unintentionally XFAILed due to a change in the behavior of the expectedFailure decorator. Fix that. Also, mark the test as debug-info independent while I'm in there. llvm-svn: 266072
* AMDGPU: Add volatile to test loads and storesMatt Arsenault2016-04-1219-291/+291
| | | | | | | | When the memory vectorizer is enabled, these tests break. These tests don't really care about the memory instructions, and it's easier to write check lines with the unmerged loads. llvm-svn: 266071
* [X86] Regenerated avx512 calling convention test checksSimon Pilgrim2016-04-121-5/+5
| | | | llvm-svn: 266070
* Record wrapping assumptions earlyJohannes Doerfert2016-04-1212-76/+53
| | | | | | | | Utilizing the record option for assumptions we can simplify the wrapping assumption generation a lot. Additionally, we can now report locations together with wrapping assumptions, though they might not be accurate yet. llvm-svn: 266069
* Record assumptions first and add them laterJohannes Doerfert2016-04-1211-20/+89
| | | | | | | | | | | | | | | | | | There are three reasons why we want to record assumptions first before we add them to the assumed/invalid context: 1) If the SCoP is not profitable or otherwise invalid without the assumed/invalid context we do not have to compute it. 2) Information about the context are gathered rather late in the SCoP construction (basically after we know all parameters), thus the user might see overly complicated assumptions to be taken while they would have been simplified later on. 3) Currently we cannot take assumptions at any point but have to wait, e.g., for the domain generation to finish. This makes wrapping assumptions much more complicated as they need to be and it will have a similar effect on "signed-unsigned" assumptions later. llvm-svn: 266068
* Use DefinedSynthetic for _gp* symbols.Rafael Espindola2016-04-1210-35/+37
| | | | | | | The test changes to put _gp* in the .got section matches what both bfd and gold do. llvm-svn: 266067
* Introduce and use MemoryAccess::getPwAff() [NFC]Johannes Doerfert2016-04-122-4/+12
| | | | llvm-svn: 266066
* Do not assume switch modeling optimizes a SCoPJohannes Doerfert2016-04-121-1/+0
| | | | llvm-svn: 266065
* Simplify now that we always have a .got.Rafael Espindola2016-04-121-3/+1
| | | | llvm-svn: 266064
* Always create a .got on mips.Rafael Espindola2016-04-126-44/+73
| | | | | | | | | The _gp* family of symbols is defined as an offset in .got, and it is not at all clear what should happen when .got is not defined. This will allow some simplifications on how these symbols are handled. llvm-svn: 266063
* This reverts commit r266002, r266011 and r266016.Rafael Espindola2016-04-128-1074/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They broke the msan bot. Original message: Add __atomic_* lowering to AtomicExpandPass. AtomicExpandPass can now lower atomic load, atomic store, atomicrmw,and cmpxchg instructions to __atomic_* library calls, when the target doesn't support atomics of a given size. This is the first step towards moving all atomic lowering from clang into llvm. When all is done, the behavior of __sync_* builtins, __atomic_* builtins, and C11 atomics will be unified. Previously LLVM would pass everything through to the ISelLowering code. There, unsupported atomic instructions would turn into __sync_* library calls. Because of that behavior, Clang currently avoids emitting llvm IR atomic instructions when this would happen, and emits __atomic_* library functions itself, in the frontend. This change makes LLVM able to emit __atomic_* libcalls, and thus will eventually allow clang to depend on LLVM to do the right thing. It is advantageous to do the new lowering to atomic libcalls in AtomicExpandPass, before ISel time, because it's important that all atomic operations for a given size either lower to __atomic_* libcalls (which may use locks), or native instructions which won't. No mixing and matching. At the moment, this code is enabled only for SPARC, as a demonstration. The next commit will expand support to all of the other targets. Differential Revision: http://reviews.llvm.org/D18200 llvm-svn: 266062
* Revert "[mips] MIPSR6 Compact branch aliases"Simon Dardis2016-04-1213-73/+49
| | | | | | | | This reverts commit r266055. ps4-buildslave2 is highlighting a failure. llvm-svn: 266061
* [SystemZ] Use LDE32 instead of LE, when Offset is small.Jonas Paulsson2016-04-121-1/+7
| | | | | | | | | | | | On z13, if eliminateFrameIndex() chooses LE (and not LEY), immediately transform that LE to LDE32 to avoid partial register dependencies. LEY should be generally preferred for big offsets over an expansion into LAY + LDE32. Reviewed by Ulrich Weigand. llvm-svn: 266060
* [ELF] Removed redundant llvm-mc call. NFC.George Rimar2016-04-121-1/+0
| | | | llvm-svn: 266059
* Bump up timeout in TestGdbRemoteProcessInfoPavel Labath2016-04-121-1/+1
| | | | | | | the process info packet is slow, and sometimes it does not arrive on time when run on the android emulator. llvm-svn: 266058
* Remove unused diagnostics. NFC.Benjamin Kramer2016-04-122-5/+0
| | | | llvm-svn: 266057
* [OPENMP 4.0] Support for 'linear' clause in 'declare simd' directive.Alexey Bataev2016-04-1210-95/+358
| | | | | | | | | | The linear clause declares one or more list items to be private to a SIMD lane and to have a linear relationship with respect to the iteration space of a loop. 'linear' '(' <linear-list> [ ':' <linear-step> ] ')' When a linear-step expression is specified in a linear clause it must be either a constant integer expression or an integer-typed parameter that is specified in a uniform clause on the directive. The special this pointer can be used as if was one of the arguments to the function in any of the linear, aligned, or uniform clauses. llvm-svn: 266056
* [mips] MIPSR6 Compact branch aliasesSimon Dardis2016-04-1213-49/+73
| | | | | | | | | | | | Summary: Alias 'jic $reg, 0' to 'jrc $reg' and 'jialc $reg, 0' to 'jalrc $reg' like binutils. Reviewers: dsanders Differential Revision: http://reviews.llvm.org/D18856 llvm-svn: 266055
OpenPOWER on IntegriCloud