- Apr 18, 2012
-
-
Bill Wendling authored
If the loop contains invoke instructions, whose unwind edge escapes the loop, then don't try to unswitch the loop. Doing so may cause the unwind edge to be split, which not only is non-trivial but doesn't preserve loop simplify information. Fixes PR12573 llvm-svn: 154987
-
Craig Topper authored
llvm-svn: 154985
-
Andrew Trick authored
This introduces a threshold of 200 IV Users, which is very conservative but should be sufficient to avoid serious compile time sink or stack overflow. The llvm test-suite with LTO never exceeds 190 users per loop. The bug doesn't relate to a specific type of loop. Checking in an arbitrary giant loop as a unit test would be silly. Fixes rdar://11262507. llvm-svn: 154983
-
Seth Cantrell authored
llvm-svn: 154971
-
David Blaikie authored
llvm-svn: 154962
-
Joe Groff authored
also fix SimplifyLibCalls to use TLI rather than compile-time conditionals to enable optimizations on floor, ceil, round, rint, and nearbyint llvm-svn: 154960
-
Joel Jones authored
transformation: (X op C1) ^ C2 --> (X op C1) & ~C2 iff (C1&C2) == C2 should be done. This change has been tested: Using a debug+asserts build: on the specific test case that brought this bug to light make check-all lnt nt using this clang to build a release version of clang Using the release+asserts clang-with-clang build: on the specific test case that brought this bug to light make check-all lnt nt Checking in because Evan wants it checked in. Test case forthcoming after scrubbing. llvm-svn: 154955
-
- Apr 17, 2012
-
-
Chad Rosier authored
llvm-svn: 154953
-
Danil Malyshev authored
llvm-svn: 154948
-
Seth Cantrell authored
llvm-svn: 154944
-
Akira Hatanaka authored
llvm-svn: 154936
-
Akira Hatanaka authored
Patch by Vladimir Medic. llvm-svn: 154935
-
Manuel Klimek authored
llvm-svn: 154930
-
Jay Foad authored
llvm-svn: 154921
-
James Molloy authored
llvm-svn: 154915
-
Benjamin Kramer authored
This isn't right either, reverting for now. llvm-svn: 154910
-
Craig Topper authored
llvm-svn: 154907
-
Lang Hames authored
for the life of me remember why I wrote it this way, but I can't see any good reason for it now. This patch replaces the custom linked list with an ilist. This change should preserve the existing numberings exactly, so no generated code should change (if it does, file a bug!). llvm-svn: 154904
-
Kevin Enderby authored
instructions with writebacks. And add test a case for all opcodes handed by DecodeVLD2DupInstruction() in ARMDisassembler.cpp . llvm-svn: 154884
-
Eric Christopher authored
llvm-svn: 154879
-
Eric Christopher authored
llvm-svn: 154878
-
Jim Grosbach authored
rdar://11252521 llvm-svn: 154875
-
Preston Gurd authored
during Post RA scheduling in X86, until the X86 target is changed to properly set up post RA liveness. llvm-svn: 154874
-
Preston Gurd authored
llvm-svn: 154872
-
Preston Gurd authored
the MCJIT execution engine. The GDB JIT debugging integration support works by registering a loaded object image with a pre-defined function that GDB will monitor if GDB is attached. GDB integration support is implemented for ELF only at this time. This integration requires GDB version 7.0 or newer. Patch by Andy Kaylor! llvm-svn: 154868
-
Chandler Carruth authored
both fallthrough and a conditional branch target the same successor. Gracefully delete the conditional branch and introduce any unconditional branch needed to reach the actual successor. This fixes memory corruption in 2009-06-15-RegScavengerAssert.ll and possibly other tests. Also, while I'm here fix a latent bug I spotted by inspection. I never applied the same fundamental fix to this fallthrough successor finding logic that I did to the logic used when there are no conditional branches. As a consequence it would have selected landing pads had they be aligned in just the right way here. I don't have a test case as I spotted this by inspection, and the previous time I found this required have of TableGen's source code to produce it. =/ I hate backend bugs. ;] Thanks to Jim Grosbach for helping me reason through this and reviewing the fix. llvm-svn: 154867
-
- Apr 16, 2012
-
-
Jim Grosbach authored
A trailing comma means no argument at all (i.e., as if the comma were not present), not an empty argument to the invokee. rdar://11252521 llvm-svn: 154863
-
Jim Grosbach authored
rdar://11252521 llvm-svn: 154862
-
Duncan Sands authored
llvm-svn: 154850
-
Richard Smith authored
llvm-svn: 154845
-
David Blaikie authored
llvm-svn: 154841
-
Jim Grosbach authored
rdar://11252521 llvm-svn: 154840
-
Akira Hatanaka authored
llvm-svn: 154838
-
Jim Grosbach authored
rdar://11252521 llvm-svn: 154832
-
Sirish Pande authored
llvm-svn: 154829
-
Duncan Sands authored
through the use of 'fpmath' metadata. Currently this only provides a 'fpaccuracy' value, which may be a number in ULPs or the keyword 'fast', however the intent is that this will be extended with additional information about NaN's, infinities etc later. No optimizations have been hooked up to this so far. llvm-svn: 154822
-
Chandler Carruth authored
This is mostly to test the waters. I'd like to get results from FNT build bots and other bots running on non-x86 platforms. This feature has been pretty heavily tested over the last few months by me, and it fixes several of the execution time regressions caused by the inlining work by preventing inlining decisions from radically impacting block layout. I've seen very large improvements in yacr2 and ackermann benchmarks, along with the expected noise across all of the benchmark suite whenever code layout changes. I've analyzed all of the regressions and fixed them, or found them to be impossible to fix. See my email to llvmdev for more details. I'd like for this to be in 3.1 as it complements the inliner changes, but if any failures are showing up or anyone has concerns, it is just a flag flip and so can be easily turned off. I'm switching it on tonight to try and get at least one run through various folks' performance suites in case SPEC or something else has serious issues with it. I'll watch bots and revert if anything shows up. llvm-svn: 154816
-
Chandler Carruth authored
rotation. When there is a loop backedge which is an unconditional branch, we will end up with a branch somewhere no matter what. Try placing this backedge in a fallthrough position above the loop header as that will definitely remove at least one branch from the loop iteration, where whole loop rotation may not. I haven't seen any benchmarks where this is important but loop-blocks.ll tests for it, and so this will be covered when I flip the default. llvm-svn: 154812
-
Hal Finkel authored
llvm-svn: 154810
-
Chandler Carruth authored
laid out in a form with a fallthrough into the header and a fallthrough out of the bottom. In that case, leave the loop alone because any rotation will introduce unnecessary branches. If either side looks like it will require an explicit branch, then the rotation won't add any, do it to ensure the branch occurs outside of the loop (if possible) and maximize the benefit of the fallthrough in the bottom. llvm-svn: 154806
-