summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix bit initializer which was one bit too long, but worked so long as we ↵Pete Cooper2014-07-311-1/+1
| | | | | | silently dropped the leading 0 llvm-svn: 214373
* Fix bit initializer which was one bit too long, but worked so long as we ↵Pete Cooper2014-07-311-1/+1
| | | | | | silently dropped the leading 0 llvm-svn: 214372
* Fix numeric_limits<XXX>::is_modulo for signed arithmetic types. We were ↵Marshall Clow2014-07-312-9/+9
| | | | | | reporting true, for all arithmetic types, which is incorrect. Fix the tests which were wrong, too. This fixes PR#20158. llvm-svn: 214371
* Delete dead code.Rafael Espindola2014-07-314-11/+4
| | | | llvm-svn: 214370
* Rename this test so that it actually runs, and fix it so that it passes.Richard Smith2014-07-311-1/+1
| | | | llvm-svn: 214369
* UseListOrder: Don't give constant IDs to GlobalValuesDuncan P. N. Exon Smith2014-07-314-3/+21
| | | | | | | | | | | Since initializers of GlobalValues are being assigned IDs before GlobalValues themselves, explicitly exclude GlobalValues from the constant pool. Added targeted test in `test/Bitcode/use-list-order.ll` and added two more RUN lines in `test/Assembly`. This is part of PR5680. llvm-svn: 214368
* [FastISel] Fix the patchpoint intrinsic lowering in FastISel for large ↵Juergen Ributzka2014-07-312-2/+12
| | | | | | | | | target addresses. This fixes a mistake where I accidentially dropped the upper 32bit of a 64bit pointer during FastISel lowering of the patchpoint intrinsic. llvm-svn: 214367
* [FastISel][AArch64 and X86] Don't emit stores for UNDEF arguments during ↵Juergen Ributzka2014-07-314-55/+99
| | | | | | | | | | function call lowering. UNDEF arguments are not ment to be touched - especially for the webkit_js calling convention. This fix reproduces the already existing behavior of SelectionDAG in FastISel. llvm-svn: 214366
* verify-uselistorder: Add RUN lines to cases in test/AssemblyDuncan P. N. Exon Smith2014-07-31102-0/+102
| | | | | | | | | | | | | | | | | Add RUN line for `verify-uselistorder` to every test in `test/Assembly`, unless it's a negative check (assembler rejects it) or verification fails. There are three files that verification fails on (so I've left out the RUN lines): - 2002-08-22-DominanceProblem.ll - ConstantExprFold.ll - ConstantExprFoldCast.ll This is part of PR5680. llvm-svn: 214365
* X86 asm parser: Avoid duplicating the list of aliased instructionsReid Kleckner2014-07-311-16/+11
| | | | | | No functional change. llvm-svn: 214364
* Add mtpid/mfpid for BookE.Joerg Sonnenberger2014-07-302-0/+9
| | | | llvm-svn: 214363
* Updating a comment related to the implementation of -Woverloaded-virtual, ↵Aaron Ballman2014-07-302-3/+28
| | | | | | | | and adding a FIXME to a test case. (Drive-by removal of trailing whitespace in the test case as well.) No functional changes. llvm-svn: 214362
* Attempt at fixing the windows dll build.Rafael Espindola2014-07-301-1/+1
| | | | | | | It looks like only direct (i.e., explicitly listed) dependencies are scanned. llvm-svn: 214361
* llvm-profdata: Add a test for mismatched numbers of countersJustin Bogner2014-07-301-0/+40
| | | | llvm-svn: 214360
* Update for llvm change.Rafael Espindola2014-07-302-28/+28
| | | | llvm-svn: 214358
* llvm-profdata: Use consistent file suffixes in testsJustin Bogner2014-07-3019-23/+23
| | | | | | | | | | | In some places we've been using different suffixes for the different file formats involved in instrprof, but in others we've just ambiguously used .profdata. Update the test files to indicate the types of file more obviously. No functional change. llvm-svn: 214357
* Update for llvm change.Rafael Espindola2014-07-306-17/+17
| | | | llvm-svn: 214356
* Use "weak alias" instead of "alias weak"Rafael Espindola2014-07-3043-163/+159
| | | | | | | | | | | | | | | | | | | | | Before this patch we had @a = weak global ... but @b = alias weak ... The patch changes aliases to look more like global variables. Looking at some really old code suggests that the reason was that the old bison based parser had a reduction for alias linkages and another one for global variable linkages. Putting the alias first avoided the reduce/reduce conflict. The days of the old .ll parser are long gone. The new one parses just "linkage" and a later check is responsible for deciding if a linkage is valid in a given context. llvm-svn: 214355
* Refactor TLBIVAX and add tlbsx.Joerg Sonnenberger2014-07-304-8/+15
| | | | llvm-svn: 214354
* X86 asm parser: Use a loop to disambiguate suffixes instead of copy pasteReid Kleckner2014-07-301-38/+20
| | | | | | | | | This works towards making the Intel syntax asm matcher use a completely different disambiguation strategy. No functional change. llvm-svn: 214352
* Disable test on Windows. script print deadlocks on Windows.Zachary Turner2014-07-301-0/+1
| | | | llvm-svn: 214351
* [FastISel][AArch64] Add select folding support for the XALU intrinsics.Juergen Ributzka2014-07-302-110/+112
| | | | | | | | | | | This improves the code generation for the XALU intrinsics when the condition is feeding a select instruction. This also updates and enables the XALU unit tests for FastISel. This fixes <rdar://problem/17831117>. llvm-svn: 214350
* [FastISel][AArch64] Add branch folding support for the XALU intrinsics.Juergen Ributzka2014-07-301-3/+77
| | | | | | | | | This improves the code generation for the XALU intrinsics when the condition is feeding a branch instruction. This is related to <rdar://problem/17831117>. llvm-svn: 214349
* [FastISel][AArch64] Add {s|u}{add|sub|mul}.with.overflow intrinsic support.Juergen Ributzka2014-07-301-0/+171
| | | | | | | | | | This commit adds support for the {s|u}{add|sub|mul}.with.overflow intrinsics. The unit tests for FastISel will be enabled in a later commit, once there is also branch and select folding support. This is related to <rdar://problem/17831117>. llvm-svn: 214348
* [FastISel] Move the helper function isCommutativeIntrinsic into FastISel ↵Juergen Ributzka2014-07-302-13/+13
| | | | | | | | | base class. Move the helper function isCommutativeIntrinsic into the FastISel base class, so it can be used by more than just one backend. llvm-svn: 214347
* [FastISel][AArch64] Create helper functions to create the various multiplies ↵Juergen Ributzka2014-07-301-24/+70
| | | | | | on AArch64. llvm-svn: 214346
* [FastISel][AArch64] Add support for shift-immediate.Juergen Ributzka2014-07-302-1/+190
| | | | | | | | Currently the shift-immediate versions are not supported by tblgen and hopefully this can be later removed, once the required support has been added to tblgen. llvm-svn: 214345
* [Sanitizer] Hoist the code parsing suppressions file into sanitizer_common.Alexey Samsonov2014-07-303-46/+13
| | | | | | Remove corresponding bits from LSan and TSan runtimes. No functionality change. llvm-svn: 214344
* [Sanitizer] Make "suppressions" and "print_suppressions" common runtime flags.Alexey Samsonov2014-07-308-24/+16
| | | | | | No functionality change. llvm-svn: 214343
* InstCombine: Simplify (A ^ B) or/and (A ^ B ^ C)David Majnemer2014-07-303-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While we can already transform A | (A ^ B) into A | B, things get bad once we have (A ^ B) | (A ^ B ^ Cst) because reassociation will morph this into (A ^ B) | ((A ^ Cst) ^ B). Our existing patterns fail once this happens. To fix this, we add a new pattern which looks through the tree of xor binary operators to see that, in fact, there exists a redundant xor operation. What follows bellow is a correctness proof of the transform using CVC3. $ cat t.cvc A, B, C : BITVECTOR(64); QUERY BVXOR(A, B) | BVXOR(BVXOR(B, C), A) = BVXOR(A, B) | C; QUERY BVXOR(BVXOR(A, C), B) | BVXOR(A, B) = BVXOR(A, B) | C; QUERY BVXOR(A, B) & BVXOR(BVXOR(B, C), A) = BVXOR(A, B) & ~C; QUERY BVXOR(BVXOR(A, C), B) & BVXOR(A, B) = BVXOR(A, B) & ~C; $ cvc3 < t.cvc Valid. Valid. Valid. Valid. llvm-svn: 214342
* When resetting the number of children on a ValueObject, also clear the ↵Enrico Granata2014-07-301-3/+3
| | | | | | existing children. This avoids issues where dynamic types change, but children stay the same llvm-svn: 214341
* Revert a part of r214335 that I didn't mean to commitEnrico Granata2014-07-301-9/+7
| | | | llvm-svn: 214340
* Add rfdi and rfmci from the e500/e500mc ISA.Joerg Sonnenberger2014-07-303-0/+15
| | | | llvm-svn: 214339
* SLP Vectorizer: Canonicalize tree operands of commutitive binary operands.Chad Rosier2014-07-302-12/+107
| | | | llvm-svn: 214338
* Improve the way the ObjC data formatters fetch a valid frame to use for ↵Enrico Granata2014-07-303-5/+28
| | | | | | | | | | running expressions against This is not bullet-proof, as you might end up running in a thread where you shouldn't, but the previous policy had the same drawback Also, in cases where code-running formatters were being recursively applied, the previous policy caused deeper levels to fail, whereas this will at least get such scenarios to function We might eventually want to consider disqualifying certain threads/frames for "viability", but I'd rather keep it simple until complexity is proven to be necessary llvm-svn: 214337
* SimplifyCFG: Avoid miscompilations due to removed lifetime intrinsics.Rafael Espindola2014-07-302-4/+4
| | | | | | | | | | | The lifetime intrinsics need some work in order to make it clear which optimizations are or are not valid. For now dropping this optimization avoids a miscompilation. Patch by Björn Steinbrink. llvm-svn: 214336
* Reflect changes in LLVM getTypeInfo() APIEnrico Granata2014-07-301-25/+27
| | | | llvm-svn: 214335
* [Sanitizer] Make SuppressionContext a singleton class, residing in ↵Alexey Samsonov2014-07-306-38/+45
| | | | | | | | | | sanitizer_common. Convert TSan and LSan to the new interface. More changes will follow: 1) "suppressions" should become a common runtime flag. 2) Code for parsing suppressions file should be moved to SuppressionContext::Init(). llvm-svn: 214334
* Add a state variable to the loop hint attribute.Tyler Nowicki2014-07-3010-120/+157
| | | | | | | | This patch is necessary to support constant expressions which replaces the integer value in the loop hint attribute with an expression. The integer value was also storing the pragma’s state for options like vectorize(enable/disable) and the pragma unroll and nounroll directive. The state variable is introduced to hold the state of those options/pragmas. This moves the validation of the state (keywords) from SemaStmtAttr handler to the loop hint annotation token handler. Reviewed by Aaron Ballman llvm-svn: 214333
* Add BookE's tlbre, tlbwe and tlbivax instructions.Joerg Sonnenberger2014-07-303-0/+32
| | | | llvm-svn: 214332
* docs: update the command guide documentation for llvm-profdata.Alex Lorenz2014-07-301-12/+85
| | | | | | Differential Revision: http://reviews.llvm.org/D4726 llvm-svn: 214331
* Fix test case introduced in r214322Louis Gerbarg2014-07-301-1/+1
| | | | | | | This patch adds an explicit triple to the test case introduced by r214322. This should fix build failueres that are occuring on bots that are cross building. llvm-svn: 214330
* LangRef: add a note about the mangling-suppressing \01 prefixHans Wennborg2014-07-301-1/+2
| | | | | | | | | Someone asked about this on IRC the other day, and I couldn't find the magic prefix documented anywhere. Differential Revision: http://reviews.llvm.org/D4728 llvm-svn: 214329
* Refactor duplicated code.Rafael Espindola2014-07-304-47/+38
| | | | llvm-svn: 214328
* lldb is a scope, not a labelEd Maste2014-07-301-1/+1
| | | | llvm-svn: 214327
* Fix build: remove bogus ./ at end of lineEd Maste2014-07-301-1/+1
| | | | llvm-svn: 214326
* Fixing a few -Woverloaded-virtual warnings by exposing the hidden virtual ↵Aaron Ballman2014-07-302-0/+4
| | | | | | function as well. No functional changes intended. llvm-svn: 214325
* Use Process::ReadMemoryFromPointer() instead of manually reading the pointer.Greg Clayton2014-07-301-6/+3
| | | | llvm-svn: 214323
* Retain alignment requirements for load->selects modified by DAGCombineLouis Gerbarg2014-07-302-2/+41
| | | | | | | | | | | | | | | | | DAGCombine may choose to rewrite graphs where two loads feed a select into graphs where a select of two addresses feed a load. While it sanity checks the loads to make sure they are broadly equivalent it currently just uses the alignment restriction of the left node. In cases where the right node has stronger alignment requiresment this may lead to bad codegen, such as generating an aligned load where an unaligned load is required. This patch makes the combine generate a load with an alignment that is the same as whichever is more restrictive of the two alignments. Tests included. rdar://17762530 llvm-svn: 214322
* UseListOrder: Visit global valuesDuncan P. N. Exon Smith2014-07-305-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When predicting use-list order, we visit functions in reverse order followed by `GlobalValue`s and write out use-lists at the first opportunity. In the reader, this will translate to *after* the last use has been added. For this to work, we actually need to descend into `GlobalValue`s. Added a targeted test in `use-list-order.ll` and `RUN` lines to the newly passing tests in `test/Bitcode`. There are two remaining failures in `test/Bitcode`: - blockaddress.ll: I haven't thought through how to model the way block addresses change the order of use-lists (or how to work around it). - metadata-2.ll: There's an old-style `@llvm.used` global array here that I suspect the .ll parser isn't upgrading properly. When it round-trips through bitcode, the .bc reader *does* upgrade it, so the extra variable (`i8* null`) has an extra use, and the shuffle vector doesn't match. I think the fix is to upgrade old-style global arrays (or reject them?) in the .ll parser. This is part of PR5680. llvm-svn: 214321
OpenPOWER on IntegriCloud