- Jul 24, 2012
-
-
Nick Lewycky authored
might be deliberate "one time" leaks, so that leak checkers can find them. This is a reapply of r160602 with the fix that this time I'm committing the code I thought I was committing last time; the I->eraseFromParent() goes *after* the break out of the loop. llvm-svn: 160664
-
- Jul 23, 2012
-
-
Dan Gohman authored
rdar://11931823. llvm-svn: 160637
-
Nadav Rotem authored
llvm-svn: 160629
-
Sylvestre Ledru authored
llvm-svn: 160621
-
- Jul 22, 2012
-
-
Chandler Carruth authored
moved earlier. This fixes some layering issues. llvm-svn: 160611
-
- Jul 21, 2012
-
-
Nick Lewycky authored
llvm-svn: 160603
-
Nick Lewycky authored
r160529 that was subsequently reverted. The fix was to not call GV->eraseFromParent() right before the caller does the same. The existing testcases already caught this bug if run under valgrind. llvm-svn: 160602
-
Nuno Lopes authored
move the bounds checking pass to the instrumentation folder, where it belongs. I dunno why in the world I dropped it in the Scalar folder in the first place. No functionality change. llvm-svn: 160587
-
- Jul 20, 2012
-
-
Richard Osborne authored
GetBestDestForJumpOnUndef() assumes there is at least 1 successor, which isn't true if the block ends in an indirect branch with no successors. Fix this by bailing out earlier in this case. llvm-svn: 160546
-
Kostya Serebryany authored
[asan] make sure that the crash callbacks do not get merged (Chandler's idea: insert an empty InlineAsm). Change the order in which the new BBs are inserted: the slow path BB is insert between old BBs, the crash BB is inserted at the end. Don't create an empty BB (introduced by recent commits). Update the test. The experimental code that does manual crash callback merge will most likely be deleted later. llvm-svn: 160544
-
Nick Lewycky authored
llvm-svn: 160532
-
Nick Lewycky authored
memory. This makes clang play nice with leak checkers. llvm-svn: 160529
-
- Jul 19, 2012
-
-
Benjamin Kramer authored
No functionality change. llvm-svn: 160501
-
Bill Wendling authored
llvm-svn: 160477
-
- Jul 18, 2012
-
-
Andrew Trick authored
Minor oversight noticed by inspection. Sorry no unit test. llvm-svn: 160422
-
Andrew Trick authored
Fixes PR13371: indvars pass incorrectly substitutes 'undef' values. I do not like this fix. It's needed until/unless the meaning of undef changes. It attempts to be complete according to the IR spec, but I don't have much confidence in the implementation given the difficulty testing undefined behavior. Worse, this invalidates some of my hard-fought work on indvars and LSR to optimize pointer induction variables. It results benchmark regressions, which I'll track internally. On x86_64 no LTO I see: -3% huffbench -3% 400.perlbench -8% fhourstones My only suggestion for recovering is to change the meaning of undef. If we could trust an arbitrary instruction to produce a some real value that can be manipulated (e.g. incremented) according to non-undef rules, then this case could be easily handled with SCEV. llvm-svn: 160421
-
- Jul 17, 2012
-
-
Evan Cheng authored
llvm-svn: 160387
-
Kostya Serebryany authored
[asan] more code to merge crash callbacks. Doesn't fully work yet, but allows to hold performance experiments llvm-svn: 160361
-
Andrew Trick authored
Speculatively fix crashes by code inspection. Can't reproduce them yet. llvm-svn: 160344
-
Andrew Trick authored
Some units tests crashed on a different platform. llvm-svn: 160341
-
Andrew Trick authored
This places limits on CollectSubexprs to constrains the number of reassociation possibilities. It limits the recursion depth and skips over chains of nested recurrences outside the current loop. Fixes PR13361. Although underlying SCEV behavior is still potentially bad. llvm-svn: 160340
-
Nuno Lopes authored
llvm-svn: 160325
-
- Jul 16, 2012
-
-
Kostya Serebryany authored
[asan] a bit more refactoring, addressed some of the style comments from chandlerc, partially implemented crash callback merging (under flag) llvm-svn: 160290
-
Kostya Serebryany authored
[asan] refactor instrumentation to allow merging the crash callbacks (not fully implemented yet, no functionality change except the BB order) llvm-svn: 160284
-
Kostya Serebryany authored
llvm-svn: 160269
-
Chandler Carruth authored
It turns out that ASan relied on the at-the-end block insertion order to (purely by happenstance) disable some LLVM optimizations, which in turn start firing when the ordering is made more "normal". These optimizations in turn merge many of the instrumentation reporting calls which breaks the return address based error reporting in ASan. We're looking at several different options for fixing this. llvm-svn: 160256
-
Chandler Carruth authored
This is particularly useful to the backend code generators which try to process things in the incoming function order. Also, cleanup some uses of IRBuilder to be a bit simpler and more clear. llvm-svn: 160254
-
Chandler Carruth authored
the move of *Builder classes into the Core library. No uses of this builder in Clang or DragonEgg I could find. If there is a desire to have an IR-building-support library that contains all of these builders, that can be easily added, but currently it seems likely that these add no real overhead to VMCore. llvm-svn: 160243
-
Chandler Carruth authored
IRBuilder, DIBuilder, etc. This is the proper layering as MDBuilder can't be used (or implemented) without the Core Metadata representation. Patches to Clang and Dragonegg coming up. llvm-svn: 160237
-
- Jul 14, 2012
-
-
Andrew Trick authored
All SCEV expressions used by LSR formulae must be safe to expand. i.e. they may not contain UDiv unless we can prove nonzero denominator. Fixes PR11356: LSR hoists UDiv. llvm-svn: 160205
-
- Jul 13, 2012
-
-
Benjamin Kramer authored
llvm-svn: 160173
-
- Jul 12, 2012
-
-
Evan Cheng authored
%shr = lshr i64 %key, 3 %0 = load i64* %val, align 8 %sub = add i64 %0, -1 %and = and i64 %sub, %shr ret i64 %and to: %shr = lshr i64 %key, 3 %0 = load i64* %val, align 8 %sub = add i64 %0, 2305843009213693951 %and = and i64 %sub, %shr ret i64 %and The demanded bit optimization is actually a pessimization because add -1 would be codegen'ed as a sub 1. Teach the demanded constant shrinking optimization to check for negated constant to make sure it is actually reducing the width of the constant. rdar://11793464 llvm-svn: 160101
-
- Jul 09, 2012
-
-
Nuno Lopes authored
This patch removes ~70 lines in InstCombineLoadStoreAlloca.cpp and makes both functions a bit more aggressive than before :) In theory, we can be more aggressive when removing an alloca than a malloc, because an alloca pointer should never escape, but we are not taking advantage of this anyway llvm-svn: 159952
-
- Jul 07, 2012
-
-
Nuno Lopes authored
teach instcombine to remove allocated buffers even if there are stores, memcpy/memmove/memset, and objectsize users. This means we can do cheap DSE for heap memory. Nothing is done if the pointer excapes or has a load. The churn in the tests is mostly due to objectsize, since we want to make sure we don't delete the malloc call before evaluating the objectsize (otherwise it becomes -1/0) llvm-svn: 159876
-
- Jul 05, 2012
-
-
Kostya Serebryany authored
[tsan] fix compile-time falilure found while building Chromium with tsan (tsan issue #3). A unit test will follow separately. llvm-svn: 159736
-
- Jul 04, 2012
-
-
Stepan Dyatkovskiy authored
IntegersSubsetMapping - Replaced type of Items field from std::list with std::map. In neares future I'll test it with DenseMap and do the correspond replacement if possible. llvm-svn: 159703
-
- Jul 03, 2012
-
-
Nuno Lopes authored
(LLVM optimizers cannot do this optimization by themselves) llvm-svn: 159668
-
Stepan Dyatkovskiy authored
IntegersSubsetMapping - Replaced type of Items field from std::list with std::map. In neares future I'll test it with DenseMap and do the correspond replacement if possible. llvm-svn: 159659
-
Eric Christopher authored
This reverts commit b2833d9dcba88c6f0520cad760619200adc0442c. llvm-svn: 159618
-
- Jul 02, 2012
-
-
Duncan Sands authored
llvm-svn: 159546
-