summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Fast-ISel] Clear kill flags on registers replaced by updateValueMap.Pete Cooper2015-05-082-0/+31
| | | | | | | | | | When selecting an extract instruction, we don't actually generate code but instead work out which register we are reading, and rewrite uses of the extract def to the source register. This is done via updateValueMap,. However, its possible that the source register we are rewriting *to* to also have uses. If those uses are after a kill of the value we are rewriting *from* then we have uses after a kill and the verifier fails. This code checks for the case where the to register is also used, and if so it clears all kill on the from register. This is conservative, but better that always clearing kills on the from register. llvm-svn: 236897
* [Hexagon] Generate more hardware loopsBrendon Cahoon2015-05-088-222/+656
| | | | | | | | | Refactored parts of the hardware loop pass to generate more. Also, added more tests. Differential Revision: http://reviews.llvm.org/D9568 llvm-svn: 236896
* Skip tests that are timing out on the FreeBSD buildbotEd Maste2015-05-081-0/+30
| | | | | | | | | XFAILing these does not work because the timeout is caught by the top-level test infrastucture instead. Might be llvm.org/pr22784 llvm-svn: 236895
* [BasicAA] Fix zext & sext handlingSanjoy Das2015-05-082-60/+379
| | | | | | | | | | | | | | | | | | | | | | | Summary: There are several unhandled edge cases in BasicAA's GetLinearExpression method. This changes fixes outstanding issues, including zext / sext of a constant with the sign bit set, and the refusal to decompose zexts or sexts of wrapping arithmetic. Test Plan: Unit tests added in //q.ext.ll//. Patch by Nick White. Reviewers: hfinkel, sanjoy Reviewed By: hfinkel, sanjoy Subscribers: sanjoy, llvm-commits, hfinkel Differential Revision: http://reviews.llvm.org/D6682 llvm-svn: 236894
* Replace branch-to-unreachable with assertion.David Blaikie2015-05-081-4/+2
| | | | llvm-svn: 236893
* Enable thread-safe logging.Zachary Turner2015-05-081-8/+16
| | | | | | | | | | | | | Thread-safe logging had been disabled because of a deadlock, possibly due to a lock acquired during a signal handler. This patch turns thread safe logging back on and also greatly reduces the scope of the lock, confining it only to the code that affects the underlying output stream, instead of all the code that builds up the formatted log message. this should resolve the issue surrounding the deadlock. llvm-svn: 236892
* Fix a docs build break introduced by rL236888.Pat Gavlin2015-05-081-1/+1
| | | | llvm-svn: 236891
* [X86] Fast-ISel was incorrectly always killing the source of a truncate.Pete Cooper2015-05-082-1/+43
| | | | | | | | | | | A trunc from i32 to i1 on x86_64 generates an instruction such as %vreg19<def> = COPY %vreg9:sub_8bit<kill>; GR8:%vreg19 GR32:%vreg9 However, the copy here should only have the kill flag on the 32-bit path, not the 64-bit one. Otherwise, we are killing the source of the truncate which could be used later in the program. llvm-svn: 236890
* TyposAnton Korobeynikov2015-05-081-2/+2
| | | | llvm-svn: 236889
* Extend the statepoint intrinsic to allow statepoints to be marked as ↵Pat Gavlin2015-05-0843-180/+616
| | | | | | | | | | | | | | | | | | | | | | transitions from GC-aware code to code that is not GC-aware. This changes the shape of the statepoint intrinsic from: @llvm.experimental.gc.statepoint(anyptr target, i32 # call args, i32 unused, ...call args, i32 # deopt args, ...deopt args, ...gc args) to: @llvm.experimental.gc.statepoint(anyptr target, i32 # call args, i32 flags, ...call args, i32 # transition args, ...transition args, i32 # deopt args, ...deopt args, ...gc args) This extension offers the backend the opportunity to insert (somewhat) arbitrary code to manage the transition from GC-aware code to code that is not GC-aware and back. In order to support the injection of transition code, this extension wraps the STATEPOINT ISD node generated by the usual lowering lowering with two additional nodes: GC_TRANSITION_START and GC_TRANSITION_END. The transition arguments that were passed passed to the intrinsic (if any) are lowered and provided as operands to these nodes and may be used by the backend during code generation. Eventually, the lowering of the GC_TRANSITION_{START,END} nodes should be informed by the GC strategy in use for the function containing the intrinsic call; for now, these nodes are instead replaced with no-ops. Differential Revision: http://reviews.llvm.org/D9501 llvm-svn: 236888
* [NoTTI] reject negative scale in addressing modeJingyue Wu2015-05-082-3/+31
| | | | | | | | | | | | | | | | Summary: I noticed this bug when deubging a WIP on LSR. I wonder whether and how we should add a regression test for this. Test Plan: no tests failed. Reviewers: atrick Subscribers: hfinkel, llvm-commits Differential Revision: http://reviews.llvm.org/D9536 llvm-svn: 236887
* Clear kill flags on all used registers when sinking instructions.Pete Cooper2015-05-082-1/+36
| | | | | | | | | | | | | The test here was sinking the AND here to a lower BB: %vreg7<def> = ANDWri %vreg8, 0; GPR32common:%vreg7,%vreg8 TBNZW %vreg8<kill>, 0, <BB#1>; GPR32common:%vreg8 which meant that vreg8 was read after it was killed. This commit changes the code from clearing kill flags on the AND to clearing flags on all registers used by the AND. llvm-svn: 236886
* 80 cols fix since i'm looking at this function anyway. NFCPete Cooper2015-05-081-1/+2
| | | | llvm-svn: 236885
* Change some text areas from saying Intel(R) OpenMP runtime library to LLVM ↵Andrey Churbanov2015-05-083-24/+9
| | | | | | OpenMP runtime library. llvm-svn: 236884
* Add the test case from PR 14044 to ensure it doesn't regress.Kaelyn Takata2015-05-081-0/+12
| | | | | | | The test started working at some point, presumably fixed through the delayed typo correction work. llvm-svn: 236883
* Revert "clang-format: Only output IncompleteFormat if -cursor is given."Renato Golin2015-05-082-8/+8
| | | | | | | This reverts commit r236867, as it was breaking multiple buildbots. Daniel will look into it later. llvm-svn: 236882
* Remove duplicate cmake target I added in r236792.Pete Cooper2015-05-081-1/+0
| | | | | | Thanks to Daniel Jasper for pointing out the mistake. llvm-svn: 236881
* [ARM] Use the correct variable name and unbreak buildbot.Davide Italiano2015-05-081-1/+1
| | | | llvm-svn: 236880
* Do not emit thunks with available_externally linkage in comdatsDerek Schuff2015-05-087-28/+47
| | | | | | | | | | | | | | Functions with available_externally linkage will not be emitted to object files (they will just be undefined symbols), so it does not make sense to put them in comdats. Creates a second overload of maybeSetTrivialComdat that uses the GlobalObject instead of the Decl, and uses that in several places that had the faulty logic. Differential Revision: http://reviews.llvm.org/D9580 llvm-svn: 236879
* Unbreak build: Makefile must have the same change as CMakeLists.txtDouglas Katzman2015-05-081-1/+1
| | | | | | | This was omitted from http://reviews.llvm.org/D9441 (the irony is that that was to detect omissions in something else) llvm-svn: 236878
* [sanitizer] Attempt to fix the test for missing coverage script.Sergey Matveev2015-05-081-6/+7
| | | | llvm-svn: 236877
* [Hexagon] Update AnalyzeBranch, etc target hooksBrendon Cahoon2015-05-085-274/+1005
| | | | | | | | | | | | | Improved the AnalyzeBranch, InsertBranch, and RemoveBranch functions in order to handle more of our branch instructions. This requires changes to analyzeCompare and PredicateInstructions. Specifically, we've added support for new value compare jumps, improved handling of endloop, added more compare instructions, and improved support for predicate instructions. Differential Revision: http://reviews.llvm.org/D9559 llvm-svn: 236876
* Adjust formatting to latest clang-format changeTobias Grosser2015-05-081-1/+6
| | | | llvm-svn: 236875
* Fix "TODO" and provide the configure-time options to find libunwind.Anton Korobeynikov2015-05-081-5/+30
| | | | | | This is done the same way as we're looking for libc++ llvm-svn: 236874
* [ARM] Generation of .ARM.exidx/.ARM.extab sectionsLeny Kholodov2015-05-089-21/+378
| | | | | | | | | | | | This patch provides generation of .ARM.exidx & .ARM.extab sections which are used for unwinding. The patch adds new content type typeARMExidx for atoms from .ARM.exidx section and integration of atoms with such type to the ELF ReaderWriter. exidx.test has been added with checking of contents of .ARM.exidx section and .ARM.extab section. Differential Revision: http://reviews.llvm.org/D9324 llvm-svn: 236873
* Remove check for object file type from DynamicLoaderPOSIXDYLD::DidAttachTamas Berghammer2015-05-081-4/+0
| | | | | | | | For PIE executables the type of the main executable is shared object so we can't force that the main executable should have the type of executable. llvm-svn: 236870
* Revert "Allow case-insensitive values for -mcpu for ARM and AArch64"Renato Golin2015-05-084-27/+4
| | | | | | | This reverts commit r236859, as it broke multiple builds. I'll investigate and reapply when safe. llvm-svn: 236869
* clang-format: Only output IncompleteFormat if -cursor is given.Daniel Jasper2015-05-082-8/+8
| | | | | | This is only for editor integrations. llvm-svn: 236867
* Prevent further errors of omission when adding backend names.Douglas Katzman2015-05-082-0/+45
| | | | | | Differential Revision: http://reviews.llvm.org/D9441 llvm-svn: 236865
* [X86] Teach 'getTargetShuffleMask' how to look through ISD::WrapperRIP when ↵Andrea Di Biagio2015-05-082-1/+19
| | | | | | | | | | | | | | | | | | | | | | decoding a PSHUFB mask. The function 'getTargetShuffleMask' already knows how to deal with PSHUFB nodes where the mask node is a load from constant pool, and the constant pool node is wrapped by a X86ISD::Wrapper node. This patch extends that logic by teaching it how to also look through X86ISD::WrapperRIP. This helps function combineX86ShufflesRecusively to combine more shuffle sequences containing PSHUFB nodes if we are in RIPRel PIC mode. Before this change, llc (with -relocation-model=pic -march=x86-64) was unable to decode a pshufb where the mask was loaded from a constant pool. For example, the no-op shuffle from test 'x86-fold-pshufb.ll' was not folded into its operand, so instead of generating a single 'movaps' the backend always generated a sub-optimal 'movdqa + pshufb' sequence. Added test x86-fold-pshufb.ll. llvm-svn: 236863
* Allow case-insensitive values for -mcpu for ARM and AArch64Renato Golin2015-05-084-4/+27
| | | | | | | | | GCC allows case-insensitive values for -mcpu, -march and -mtune options. This patch implements the same behaviour for the -mcpu option. Patch by Gabor Ballabas. llvm-svn: 236859
* [mips][microMIPSr6] Implement ALUIPC and AUIPC instructionsJozef Kolek2015-05-085-3/+38
| | | | | | | | This patch implements ALUIPC and AUIPC instructions using mapping. Differential Revision: http://reviews.llvm.org/D8441 llvm-svn: 236858
* Add expectedFailureFreeBSD decorator for buildbot pexpect issueEd Maste2015-05-084-0/+4
| | | | | | | | | | I'm not yet sure what's wrong with pexpect and I cannot reproduce this problem locally. XFAIL these tests for now to reduce buildbot noise so I can track down the remaining buildbot failures. llvm.org/pr22784 llvm-svn: 236857
* Fix test added in r236850 for OSX builders.James Y Knight2015-05-081-1/+1
| | | | | | | Need to specify triple so that llvm emits the asm syntax that the test expected. llvm-svn: 236855
* Make emacs show when clang-format encountered a syntax error.Manuel Klimek2015-05-084-12/+31
| | | | | | | Propagate the 'incomplete-format' state back through clang-format's command line interace and adapt the emacs integration to show a better result. llvm-svn: 236854
* Enable TestCallStopAndContinue on FreeBSDEd Maste2015-05-081-1/+0
| | | | | | | | | | It's reported to pass consistently on Linux now, and it passed for me in local testing on FreeBSD. Remove the expectedFailureFreeBSD decorator for now. llvm.org/pr20274 llvm-svn: 236853
* [mips][microMIPSr6] Implement ADDIUPC and LWPC instructionsJozef Kolek2015-05-085-3/+37
| | | | | | | | This patch implements ADDIUPC and LWPC instructions using mapping. Differential Revision: http://reviews.llvm.org/D8415 llvm-svn: 236852
* clang-format: Several improvements around formatting braced lists.Daniel Jasper2015-05-082-10/+33
| | | | | | | | | | | | | In particular: * If the difference between the longest and shortest element, we copped out of column format completely. Now, we instead allow to arrange these in a single column, essentially enforcing a one-per-line format. * Allow column layout even if there are braced lists. Especially, if there are many short lists, this can be beneficial. The bad case, where there is a long nested init list is usually caught as we now limit the length difference of the longest and shortest element. llvm-svn: 236851
* Fix alignment checks in MergeConsecutiveStores.James Y Knight2015-05-083-44/+123
| | | | | | | | | | | | | | | 1) check whether the alignment of the memory is sufficient for the *merged* store or load to be efficient. Not doing so can result in some ridiculously poor code generation, if merging creates a vector operation which must be aligned but isn't. 2) DON'T check that the alignment of each load/store is equal. If you're merging 2 4-byte stores, the first *might* have 8-byte alignment, but the second certainly will have 4-byte alignment. We do want to allow those to be merged. llvm-svn: 236850
* Fix coding standart based on post submit comments.Igor Laevsky2015-05-081-4/+4
| | | | | | Differential Revision: http://reviews.llvm.org/D7760 llvm-svn: 236849
* Fix for bug 23429.Nemanja Ivanovic2015-05-081-0/+8
| | | | | | | The macros for gcc atomic compare and swaps are defined for Power8 CPU's since the functionality is provided in the back end. llvm-svn: 236848
* [TSan][MIPS] XFAIL long jump tests for MIPS64Sagar Thakur2015-05-085-0/+19
| | | | | | | | | | Mark longjmp tests as XFAIL because longjmp assembly for mips is not yet implemented. Reviewers: dsanders, dvyukov, samsonov Subscribers: llvm-commits, mohit.bhakkad, jaydeep Differential Revision: http://reviews.llvm.org/D9526 llvm-svn: 236847
* [ARM] Give an error on invalid -march valuesJohn Brawn2015-05-082-4/+17
| | | | | | | | | | llvm::Triple::getARMCPUForArch now returns nullptr for invalid -march values, instead of silently translating it to arm7tdmi. Use this to give an error message, which is consistent with how gcc behaves. Differential Revision: http://reviews.llvm.org/D9602 llvm-svn: 236846
* [ARM] Reject invalid -march valuesJohn Brawn2015-05-082-35/+71
| | | | | | | | | | | | | | | Restructure Triple::getARMCPUForArch so that invalid values will return nullptr, while retaining the behaviour that an argument specifying no particular architecture version will give a default CPU. This will be used by clang to give an error on invalid -march values. Also restructure the extraction of the architecture version from the MArch string a little to hopefully make what it's doing clearer. Differential Revision: http://reviews.llvm.org/D9599 llvm-svn: 236845
* [ASAN] Use regex for addresses in kernel_area.cc testSagar Thakur2015-05-081-6/+6
| | | | | | | | | | | This test was failing on mips because mips addresses are 40-bit long. Using regex for address solves this issue. Reviewers: dsanders, kcc, samsonov Subscribers: llvm-commits, mohit.bhakkad, jaydeep Differential Revision: http://reviews.llvm.org/D9516 llvm-svn: 236844
* Use /data/local/tmp as temp directory on androidTamas Berghammer2015-05-084-5/+31
| | | | | | | | | | | If no temp directory specified by the user on android then fall back to /data/local/tmp what is always present on the device. It removes the dependency of specifying TMPDIR for executing platform commands on android. Differential revision: http://reviews.llvm.org/D9569 llvm-svn: 236843
* [ARM] Check overflow of R_ARM_THM_JUMP11Denis Protivensky2015-05-082-31/+104
| | | | llvm-svn: 236842
* [ARM] Check overflow of R_ARM_CALL/JUMP24Denis Protivensky2015-05-083-2/+114
| | | | llvm-svn: 236841
* Improve MiBreakTestCase.test_lldbmi_break_insert_{function*,file_line*} ↵Ilia K2015-05-081-2/+16
| | | | | | tests (MI) llvm-svn: 236840
* [ARM] Check overflow of R_ARM_THM_CALL/JUMP24Denis Protivensky2015-05-083-2/+114
| | | | llvm-svn: 236839
OpenPOWER on IntegriCloud