summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* InstCombine: Don't strip bitcasts off of callsites marked 'thunk'David Majnemer2015-01-212-0/+15
| | | | | | | The return type of a thunk is meaningless, we just want the arguments and return value to be forwarded. llvm-svn: 226708
* Add the "thunk" attribute to MS ABI virtual member pointersReid Kleckner2015-01-212-4/+20
| | | | | | | | | | | | | | | | This attribute implies indicates that the function musttail calls another function and returns whatever it returns. The return type of the thunk is meaningless, as the thunk can dynamically call different functions with different return types. So long as the callers bitcast the thunk with the correct type, behavior is well defined. This attribute was necessary to fix PR20944, where the indirect call combiner noticed that the thunk returned void and replaced the results of the indirect call instruction with undef. Over-the-shoulder reviewed by David Majnemer. llvm-svn: 226707
* Fix runtime error on Windows.Rui Ueyama2015-01-211-2/+2
| | | | | | | | I believe the original code is valid, but on Windows it failed with an assertion error saying "Expression: vector iterator is not decrementable." Don't use rbegin and rend to workaround that error. llvm-svn: 226706
* [X86][SSE] movddup shuffle mask decodesSimon Pilgrim2015-01-213-18/+52
| | | | | | Patch to provide shuffle decodes and asm comments for the SSE3/AVX1 movddup double duplication instructions. llvm-svn: 226705
* Abstract the details from regex.h a bit more by not allowing people to ↵Greg Clayton2015-01-219-85/+37
| | | | | | | | | | specify compile and execute flags for regular expressions. Also enable better regular expressions if they are available by check if the REG_ENHANCED is available and using it if it is. Since REG_ENHANCED is available on MacOSX, this allow the use of \d (digits) \b (word boundaries) and much more without affecting other systems. <rdar://problem/12082562> llvm-svn: 226704
* Add back a FIXME note to lit.cfg.Francisco Lopes da Silva2015-01-211-0/+1
| | | | llvm-svn: 226703
* add_lld_library -> add_llvm_libraryGreg Fitzgerald2015-01-2120-189/+87
| | | | | | | | | | | * Works better for shared libraries (sets PRIVATE instead of INTERFACE) * Fixes http://llvm.org/bugs/show_bug.cgi?id=22269 * Also, use build-target names instead of component names Differential Revision: http://reviews.llvm.org/D7074 From: Greg Fitzgerald <garious@gmail.com> llvm-svn: 226702
* simplify expressionAdrian Prantl2015-01-211-3/+1
| | | | llvm-svn: 226701
* clang-format: Fix crasher when splitting incomplete escape sequences.Daniel Jasper2015-01-212-1/+7
| | | | llvm-svn: 226698
* Fix isTriviallyCopyableType for arraysSaleem Abdulrasool2015-01-212-1/+4
| | | | | | | | | Fix isTriviallyCopyableType for arrays. An array of type T is trivially copyable if T is trivially copyable. Patch by Agustín Bergé! llvm-svn: 226696
* Fixed a makefile rule used by several testsKate Stone2015-01-211-1/+1
| | | | | | Now quotes dsymutil path, required when running tests where the toolchain is in a path that contains a space llvm-svn: 226695
* Fix a compile issue on MSVC and call finalize().Adrian Prantl2015-01-211-1/+4
| | | | llvm-svn: 226694
* Fix slow test.Rui Ueyama2015-01-211-1/+1
| | | | | | | | yaml2obj command ran by this test took more than 15 seconds to finish because of extremely large .bss section. Other tests only takes 3 seconds. Reduce the size to make it faster. llvm-svn: 226693
* Rename all of the tests in preparation for merging lit configs with libcxxJonathan Roelofs2015-01-2140-1/+1
| | | | | | http://reviews.llvm.org/D7101 llvm-svn: 226691
* LiveIntervalAnalysis: Factor out code to update liveness on vreg def removalMatthias Braun2015-01-215-53/+45
| | | | | | | | | | | This cleans up code and is more in line with the general philosophy of modifying LiveIntervals through LiveIntervalAnalysis instead of changing them directly. This also fixes a case where SplitEditor::removeBackCopies() would miss the subregister ranges. llvm-svn: 226690
* LiveIntervalAnalysis: document removePhysRegDefAt() function.Matthias Braun2015-01-211-0/+3
| | | | llvm-svn: 226689
* Simplify.Rui Ueyama2015-01-212-9/+11
| | | | | | | What we are trying to do here is to skip object files in group if group is repeated. This code is simpler than before. llvm-svn: 226688
* LiveIntervalAnalysis: Factor out code to update liveness on physreg def removalMatthias Braun2015-01-215-25/+19
| | | | | | | | This cleans up code and is more in line with the general philosophy of modifying LiveIntervals through LiveIntervalAnalysis instead of changing them directly. llvm-svn: 226687
* LiveIntervalAnalysis: Remove unused pruneValue() variant.Matthias Braun2015-01-212-15/+0
| | | | llvm-svn: 226686
* clang-format: Fix crasher caused by incorrect resetting of token info.Daniel Jasper2015-01-212-0/+2
| | | | llvm-svn: 226685
* Let subprograms with instructions without parent scopes fail theAdrian Prantl2015-01-212-1/+19
| | | | | | | | verification. Tested via a unit test. Follow-up to r226616. llvm-svn: 226684
* Revert "Some fixes for linking Python on Windows."Zachary Turner2015-01-212-19/+1
| | | | | | | | | This reverts commit r226679. For some reason it was not generating the same behavior as manually specifying the include dir, library path, and exe path, and it was causing the test suite to fail to run. llvm-svn: 226683
* R600/SI: Custom lower froundMatt Arsenault2015-01-216-51/+241
| | | | | | | | | This fixes it for SI. It also removes the pattern used previously for Evergreen for f32. I'm not sure if the the new R600 output is better or not, but it uses 1 fewer instructions if BFI is available. llvm-svn: 226682
* [Hexagon] Converting multiply and accumulate with immediate intrinsics to ↵Colin LeMahieu2015-01-212-0/+141
| | | | | | patterns. llvm-svn: 226681
* clang-format: Fix bad memory access.Daniel Jasper2015-01-212-0/+2
| | | | llvm-svn: 226680
* Some fixes for linking Python on Windows.Zachary Turner2015-01-212-1/+19
| | | | | | | | | | | | | | CMake FindPythonLibs will look for multiple versions of Python including both debug and release, and build up a list such as (debug <debugpath> optimized <optimizedpath>). This confuses the logic we have in CMake to copy the correct python dll to the output directory so that it need not be in your system's PATH. To alleviate this, we manually split this list and extract out the debug and release versions of the python library, and copy only the correct one to the output directory. llvm-svn: 226679
* clang-format: Fix use-heap-after-free bug.Daniel Jasper2015-01-212-5/+9
| | | | | | Discovered by the awesome test case and ASAN. llvm-svn: 226678
* Used CHECK-DAG since the order is not important.Rafael Espindola2015-01-211-70/+70
| | | | llvm-svn: 226677
* [X86] Declare SSE4.1/AVX2 vector extloads covered by PMOV[SZ]X legal.Ahmed Bougacha2015-01-215-15/+74
| | | | | | | | | | | | | | | | | | Now that we can fully specify extload legality, we can declare them legal for the PMOVSX/PMOVZX instructions. This for instance enables a DAGCombine to fire on code such as (and (<zextload-equivalent> ...), <redundant mask>) to turn it into: (zextload ...) as seen in the testcase changes. There is one regression, in widen_load-2.ll: we're no longer able to do store-to-load forwarding with illegal extload memory types. This will be addressed separately. Differential Revision: http://reviews.llvm.org/D6533 llvm-svn: 226676
* Used CHECK-DAG since the order is not important.Rafael Espindola2015-01-211-238/+238
| | | | llvm-svn: 226675
* [msan] Fix origins in realloc.Evgeniy Stepanov2015-01-213-3/+61
| | | | | | | | | | | | | | | Fixes 2 issues in origins arising from realloc() calls: * In the in-place grow case origin for the new memory is not set at all. * In the copy-realloc case __msan_memcpy is used, which unwinds stack from inside the MSan runtime. This does not generally work (as we may be built w/o frame pointers), and produces "bad" stack trace anyway, with several uninteresting (internal) frames on top. This change also makes realloc() honor "zeroise" and "poison_in_malloc" flags. See https://code.google.com/p/memory-sanitizer/issues/detail?id=73. llvm-svn: 226674
* [msan] Refactor shadow operations.Evgeniy Stepanov2015-01-217-161/+260
| | | | | | | Move a bunch of functions to a new source file and rename some of them for consistency. No functional changes. llvm-svn: 226673
* [lit] Format JSONMetricValue strings better.Eric Fiselier2015-01-211-1/+2
| | | | llvm-svn: 226672
* Fixed a bug with how we determine bitset indices.George Burgess IV2015-01-211-1/+1
| | | | llvm-svn: 226671
* Initial support for C++ parameter completionFrancisco Lopes da Silva2015-01-2116-145/+1377
| | | | | | | | | | | | | | | | | | | | The improved completion in call context now works with: - Functions. - Member functions. - Constructors. - New expressions. - Function call expressions. - Template variants of the previous. There are still rough edges to be fixed: - Provide support for optional parameters. (fix known) - Provide support for member initializers. (fix known) - Provide support for variadic template functions. (fix unknown) - Others? llvm-svn: 226670
* Add missing include guards to WindowsSupport.h.Yaron Keren2015-01-211-0/+5
| | | | llvm-svn: 226669
* Don't assume variable name.Rafael Espindola2015-01-211-1/+1
| | | | | | Should fix the test in -Asserts builds. llvm-svn: 226668
* Make the test a bit stricter. NFC.Rafael Espindola2015-01-211-2/+2
| | | | llvm-svn: 226667
* Make the test a bit stricter. NFC.Rafael Espindola2015-01-211-0/+3
| | | | llvm-svn: 226666
* Revert "DAGCombine: fold (or (and X, M), (and X, N)) -> (and X, (or M, N))"Tim Northover2015-01-214-68/+16
| | | | | | | | It hadn't gone through review yet, but was still on my local copy. This reverts commit r226663 llvm-svn: 226665
* AArch64: add backend option to reserve x18 (platform register)Tim Northover2015-01-212-10/+15
| | | | | | | | | AAPCS64 says that it's up to the platform to specify whether x18 is reserved, and a first step on that way is to add a flag controlling it. From: Andrew Turner <andrew@fubar.geek.nz> llvm-svn: 226664
* DAGCombine: fold (or (and X, M), (and X, N)) -> (and X, (or M, N))Tim Northover2015-01-214-16/+68
| | | | llvm-svn: 226663
* clang-format function. NFC.Rafael Espindola2015-01-211-2/+2
| | | | llvm-svn: 226662
* [x32] Fast ISel should use LEA64_32r instead of LEA32r to adjust addresses ↵Michael Kuperstein2015-01-212-2/+18
| | | | | | in x32 mode. llvm-svn: 226661
* Use a smaller pragma unroll threshold to reduce test execution time.Alexander Potapenko2015-01-211-2/+2
| | | | | | | When opt is compiled with AddressSanitizer it takes more than 30 seconds to unroll the loop in unroll_1M(). llvm-svn: 226660
* tsan: remove sleeps from testsDmitry Vyukov2015-01-2196-425/+476
| | | | | | | | Even sleep(1) lead to episodical flakes on some machines. Use an invisible by tsan barrier to enforce required execution order instead. This makes the tests deterministic and faster. llvm-svn: 226659
* [msan] Update origin for the entire destination range on memory store.Evgeniy Stepanov2015-01-213-9/+159
| | | | | | | | | Previously we always stored 4 bytes of origin at the destination address even for 8-byte (and longer) stores. This should fix rare missing, or incorrect, origin stacks in MSan reports. llvm-svn: 226658
* [mips][microMIPS] MicroMIPS 16-bit unconditional branch instruction BJozef Kolek2015-01-2118-35/+202
| | | | | | | | | | | | | | Implement microMIPS 16-bit unconditional branch instruction B. Implemented 16-bit microMIPS unconditional instruction has real name B16, and B is an alias which expands to either B16 or BEQ according to the rules: b 256 --> b16 256 # R_MICROMIPS_PC10_S1 b 12256 --> beq $zero, $zero, 12256 # R_MICROMIPS_PC16_S1 b label --> beq $zero, $zero, label # R_MICROMIPS_PC16_S1 Differential Revision: http://reviews.llvm.org/D3514 llvm-svn: 226657
* [mips][microMIPS] Implement ADDIUPC instructionJozef Kolek2015-01-2110-0/+86
| | | | | | Differential Revision: http://reviews.llvm.org/D6582 llvm-svn: 226656
* [PM] Refactor the InstCombiner interface to use an external worklist.Chandler Carruth2015-01-212-211/+222
| | | | | | | | | | | | | | | | | | | | | | | | | Because in its primary function pass the combiner is run repeatedly over the same function until doing so produces no changes, it is essentially to not re-allocate the worklist. However, as a utility, the more common pattern would be to put a limited set of instructions in the worklist rather than the entire function body. That is also the more likely pattern when used by the new pass manager. The result is a very light weight combiner that does the visiting with a separable worklist. This can then be wrapped up in a helper function for users that want a combiner utility, or as I have here it can be wrapped up in a pass which manages the iterations used when combining an entire function's instructions. Hopefully this removes some of the worst of the interface warts that became apparant with the last patch here. However, there is clearly more work. I've again left some FIXMEs for the most egregious. The ones that stick out to me are the exposure of the worklist and IR builder as public members, and the use of pointers rather than references. However, fixing these is likely to be much more mechanical and less interesting so I didn't want to touch them in this patch. llvm-svn: 226655
OpenPOWER on IntegriCloud