summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Some cleanup of the type X delete commandEnrico Granata2015-11-141-40/+16
| | | | llvm-svn: 253137
* Merge some similar diagnostics using %select.Craig Topper2015-11-146-41/+34
| | | | llvm-svn: 253136
* Minor formatting fixes. NFCCraig Topper2015-11-141-2/+1
| | | | llvm-svn: 253135
* Fix 80 column violation. NFC.Craig Topper2015-11-141-2/+2
| | | | llvm-svn: 253134
* Fix spelling error in comment.Craig Topper2015-11-141-1/+1
| | | | llvm-svn: 253133
* [X86][SSE] Added extra vector truncation testsSimon Pilgrim2015-11-141-0/+201
| | | | | | Baseline comparison to D14588 llvm-svn: 253132
* [X86][MMX] Sorted MMX IR + assembly codegen builtin testsSimon Pilgrim2015-11-141-367/+374
| | | | | | Makes it easier to track what tests are missing.... llvm-svn: 253131
* [X86][MMX] Added MMX IR + assembly codegen builtin testsSimon Pilgrim2015-11-141-196/+358
| | | | | | Improved tests as discussed in PR24580 llvm-svn: 253130
* Reverting r253080 ([tsan] Don't demangle names not starting with "_Z").Kuba Brecka2015-11-142-8/+0
| | | | | | This caused bot failures on ARM, e.g. http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/9068 llvm-svn: 253129
* Mark is_destructible/is_nothrow_destructible as implementedDavid Majnemer2015-11-141-2/+2
| | | | | | | These were implemented back in r244564. However, I forgot to update the docs. llvm-svn: 253128
* Reduce the size of MCRelaxableFragment.Akira Hatanaka2015-11-1419-47/+75
| | | | | | | | | | | | | | | | | | | | | | MCRelaxableFragment previously kept a copy of MCSubtargetInfo and MCInst to enable re-encoding the MCInst later during relaxation. A copy of MCSubtargetInfo (instead of a reference or pointer) was needed because the feature bits could be modified by the parser. This commit replaces the MCSubtargetInfo copy in MCRelaxableFragment with a constant reference to MCSubtargetInfo. The copies of MCSubtargetInfo are kept in MCContext, and the target parsers are now responsible for asking MCContext to provide a copy whenever the feature bits of MCSubtargetInfo have to be toggled. With this patch, I saw a 4% reduction in peak memory usage when I compiled verify-uselistorder.lto.bc using llc. rdar://problem/21736951 Differential Revision: http://reviews.llvm.org/D14346 llvm-svn: 253127
* Don't recompute LCSSA after loop-unrolling when possible.Michael Zolotukhin2015-11-142-1/+130
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Currently we always recompute LCSSA for outer loops after unrolling an inner loop. That leads to compile time problem when we have big loop nests, and we can solve it by avoiding unnecessary work. For instance, if w eonly do partial unrolling, we don't break LCSSA, so we don't need to rebuild it. Also, if all exits from the inner loop are inside the enclosing loop, then complete unrolling won't break LCSSA either. I replaced unconditional LCSSA recomputation with conditional recomputation + unconditional assert and added several tests, which were failing when I experimented with it. Soon I plan to follow up with a similar patch for recalculation of dominators tree. Reviewers: hfinkel, dexonsmith, bogner, joker.eph, chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14526 llvm-svn: 253126
* The existing logic to loop over formatters is very pre-C++11, using void* ↵Enrico Granata2015-11-149-48/+291
| | | | | | | | | batons, and function pointers, and raw memory allocations instead of safer more modern constructs This is a first pass at a cleanup of that code, modernizing the "type X clear" commands, and providing the basic infrastructure I plan to use all over More cleanup will come over the next few days llvm-svn: 253125
* [MCTargetAsmParser] Move the member varialbes that referenceAkira Hatanaka2015-11-1412-115/+143
| | | | | | | | | | MCSubtargetInfo in the subclasses into MCTargetAsmParser and define a member function getSTI. This is done in preparation for making changes to shrink the size of MCRelaxableFragment. (see http://reviews.llvm.org/D14346). llvm-svn: 253124
* [modules] Allow "redefinition" of typedef of anon tag from unimported submoduleBen Langmuir2015-11-147-3/+22
| | | | | | | | | r233345 started being stricter about typedef names for linkage purposes in non-visible modules, but broke languages without the ODR. rdar://23527954 llvm-svn: 253123
* Add MMX to the 3dnow enum and propagate changes around. This makesEric Christopher2015-11-143-13/+8
| | | | | | it somewhat more consistent with how the feature is used. llvm-svn: 253122
* Add support for the always_inline + target feature diagnostic to printEric Christopher2015-11-144-10/+16
| | | | | | | out the first missing target feature that's required and reword the diagnostic accordingly. llvm-svn: 253121
* Use %select to merge similar diagnostics. NFCCraig Topper2015-11-146-38/+30
| | | | llvm-svn: 253119
* Clarify and elaborate the conditions on which we're checking targetEric Christopher2015-11-141-4/+6
| | | | | | features for calls. llvm-svn: 253117
* [ShrinkWrapping] Disable the optimization for functions with sanitize likeQuentin Colombet2015-11-142-1/+48
| | | | | | | | | | attribute. Even if the target supports shrink-wrapping, the prologue and epilogue must not move because a crash can happen anywhere and sanitizers need to be able to unwind from the PC of the crash. llvm-svn: 253116
* Remove some unused includesDavid Blaikie2015-11-141-2/+0
| | | | llvm-svn: 253115
* Make some tests LLVM-optimization agnostic and remove some others that were ↵David Blaikie2015-11-145-146/+16
| | | | | | | | | | | | | | | | beyond value/repair Several of these tests (the two deleted, and the one removal edit) were relying on the optimizer to collapse things to test some frontend feature. The tests were really old and features seemed amply covered by other parts of the test suite, so I just removed them. If anyone thinks they're valuable enough to keep/fix, we can play around with that, for sure. (inspired by r252872) llvm-svn: 253114
* Fixes for uniformity in type clear and delete commandsEnrico Granata2015-11-141-8/+8
| | | | llvm-svn: 253113
* Always initialize expression variables' flags field.Sean Callanan2015-11-141-0/+1
| | | | llvm-svn: 253112
* Add a few useful accessors on the data formatters containersEnrico Granata2015-11-141-0/+38
| | | | llvm-svn: 253111
* Minor cleanup to the type format list commandEnrico Granata2015-11-141-2/+2
| | | | llvm-svn: 253110
* [asan] add an experimental flag protect_shadow_gap. If set to false, the ↵Kostya Serebryany2015-11-142-0/+3
| | | | | | shadow gap will not be mprotect-ed and all hell may break loose. But this makes CUDA's cuInit() pass. llvm-svn: 253108
* CFG: Delay creating Dtors for CompoundStmts which end in ReturnStmtMatthias Gehre2015-11-142-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: VisitReturnStmt would create a new block with including Dtors, so the Dtors created in VisitCompoundStmts would be in an unreachable block. Example: struct S { ~S(); }; void f() { S s; return; } void g() { S s; } Before this patch, f has one additional unreachable block containing just the destructor of S. With this patch, both f and g have the same blocks. Reviewers: krememek Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D13973 llvm-svn: 253107
* Add a "not_in()" function you can apply to the list type arguments to ↵Jim Ingham2015-11-142-4/+21
| | | | | | | | expectedFailureAll to reverse the sense of the test. llvm-svn: 253106
* [RuntimeDyld] Fix indentation and whitespace; NFCSanjoy Das2015-11-141-21/+22
| | | | | | Whitespace-only change. llvm-svn: 253105
* Revert "[AArch64] Unconditionally pass subtarget feature reserve-x18 on Darwin."Justin Bogner2015-11-132-10/+3
| | | | | | | | | This reverts r243310, which is redundant as of r253102. Conflicts: lib/Driver/Tools.cpp llvm-svn: 253104
* AArch64: Default AArch64Subtarget::ReserveX18 to true on darwinJustin Bogner2015-11-131-2/+3
| | | | | | | | | | | Darwin reserves x18, so it's never ABI compliant to generate code that uses it. Set the default value based on the OS part of the triple rather than forcing front-ends to set the +reserve-x18 target feature in order to build correct code for Darwin. This will make r243310 redundant, so I'll revert that shortly. llvm-svn: 253102
* Fixed a testcase problem where disassembly would fail for nameless functions.Sean Callanan2015-11-131-1/+2
| | | | llvm-svn: 253101
* [CMake] Don't install c-index-test when LLVM_INSTALL_TOOLCHAIN_ONLY=ON.Argyrios Kyrtzidis2015-11-131-14/+16
| | | | llvm-svn: 253099
* [PGO] Ensure profile section symbols are created (linux)Xinliang David Li2015-11-137-1/+122
| | | | | | | | | | | | | - This is to handle a corner case where profile lib is linked in but non of the modules are instrumented (On linux, since we avoided the overhead to emit runtime hook use functions so this is the side effect of that size optimization). - Added a profile runtime test case to cover all scenarios of shared library builds. Differential Revision: http://reviews.llvm.org/D14468 llvm-svn: 253098
* MachineScheduler: Print initial pressure in debug dumpMatthias Braun2015-11-131-0/+7
| | | | llvm-svn: 253097
* MachineScheduler: Improve debug output for "only one node in readyset"Matthias Braun2015-11-131-2/+2
| | | | | | | When there is only 1 node left in the ready queue and it is picked call the reason "ONLY1" instead of "NOCAND". llvm-svn: 253096
* tablegen: Add a simple heuristic to get better names for pressure setsMatthias Braun2015-11-131-0/+6
| | | | | | Differential Revision: http://reviews.llvm.org/D14597 llvm-svn: 253095
* Change the test to use the instruction list to get the consecutive addresses ↵Jim Ingham2015-11-131-18/+9
| | | | | | | | to break on. Rerunning was being foiled by ASLR. llvm-svn: 253094
* Upstream some data formatter related cleanupsEnrico Granata2015-11-131-7/+18
| | | | llvm-svn: 253093
* Change the null check to an assert.Zachary Turner2015-11-131-1/+3
| | | | llvm-svn: 253092
* [LIR] Add support for creating memcpys from loops with a negative stride.Chad Rosier2015-11-132-14/+50
| | | | | | | | | | | | | | | This allows us to transform the below loop into a memcpy. void test(unsigned *__restrict__ a, unsigned *__restrict__ b) { for (int i = 2047; i >= 0; --i) { a[i] = b[i]; } } This is the memcpy version of r251518, which added support for memset with negative strided loops. llvm-svn: 253091
* [Hexagon] Fixing memory leak during relaxation by allocating MCInst in ↵Colin LeMahieu2015-11-131-5/+22
| | | | | | MCContext. llvm-svn: 253090
* Fix indentationEnrico Granata2015-11-131-21/+21
| | | | llvm-svn: 253089
* Remove debugging code left in by accident.Zachary Turner2015-11-131-2/+0
| | | | llvm-svn: 253088
* Fix indentationEnrico Granata2015-11-131-148/+148
| | | | llvm-svn: 253087
* Add a null check against the ThreadPlanZachary Turner2015-11-131-1/+1
| | | | | | | | I'm seeing some cases where the ThreadPlan is null. It could be a sign of a valid race condition, but at least we shouldn't crash. llvm-svn: 253086
* Modernize FormatBacktrace() and make portable for Python 3.Zachary Turner2015-11-133-21/+26
| | | | llvm-svn: 253085
* [WinEH] Fix ESP management with 32-bit __CxxFrameHandler3Reid Kleckner2015-11-135-9/+23
| | | | | | | | | | | | | | | The C++ EH personality automatically restores ESP from the C++ EH registration node after a catchret. I mistakenly thought it was like SEH, which does not restore ESP. It makes sense for C++ EH to differ from SEH here because SEH does not use funclets for catches, and does not allow catching inside of finally. C++ EH may need to unwind through multiple catch funclets and eventually catchret to some outer funclet. Therefore, the runtime has to keep track of which ESP to use with catchret, rather than having the compiler reload it manually. llvm-svn: 253084
* [safestack] Rewrite isAllocaSafe using SCEV.Evgeniy Stepanov2015-11-135-112/+430
| | | | | | | | | | | | | | | Use ScalarEvolution to calculate memory access bounds. Handle function calls based on readnone/nocapture attributes. Handle memory intrinsics with constant size. This change improves both recall and precision of IsAllocaSafe. See the new tests (ex. BitCastWide) for the kind of code that was wrongly classified as safe. SCEV efficiency seems to be limited by the fact the SafeStack runs late (in CodeGenPrepare), and many loops are unrolled or otherwise not in LCSSA. llvm-svn: 253083
OpenPOWER on IntegriCloud