llvm-6502/lib
Mark Heffernan ed05e3703e This patch de-pessimizes the calculation of loop trip counts in
ScalarEvolution in the presence of multiple exits. Previously all
loops exits had to have identical counts for a loop trip count to be
considered computable. This pessimization was implemented by calling
getBackedgeTakenCount(L) rather than getExitCount(L, ExitingBlock)
inside of ScalarEvolution::getSmallConstantTripCount() (see the FIXME
in the comments of that function). The pessimization was added to fix
a corner case involving undefined behavior (pr/16130). This patch more
precisely handles the undefined behavior case allowing the pessimization
to be removed.

ControlsExit replaces IsSubExpr to more precisely track the case where
undefined behavior is expected to occur. Because undefined behavior is
tracked more precisely we can remove MustExit from ExitLimit. MustExit
was used to track the case where the limit was computed potentially
assuming undefined behavior even if undefined behavior didn't necessarily
occur.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219517 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-10 17:39:11 +00:00
..
Analysis This patch de-pessimizes the calculation of loop trip counts in 2014-10-10 17:39:11 +00:00
AsmParser
Bitcode
CodeGen [MiSched] Fix a logic error in tryPressure() 2014-10-10 17:06:20 +00:00
DebugInfo Add couple of missing 'override' keyword. NFC. 2014-10-10 17:34:30 +00:00
ExecutionEngine Remove bogus std::error_code returns form SectionRef. 2014-10-08 15:28:58 +00:00
IR DebugInfo: Ensure that all debug location scope chains from instructions within a function, lead to the function itself. 2014-10-07 16:56:20 +00:00
IRReader
LineEditor
Linker
LTO
MC delete function name from comment 2014-10-09 21:23:39 +00:00
Object Object, COFF: Move the VirtualSize/SizeOfRawData logic to getSectionSize 2014-10-09 08:42:31 +00:00
Option
ProfileData Reduce double set lookups. NFC. 2014-10-10 15:32:50 +00:00
Support APInt: Unfold return expressions so RVO can work. 2014-10-10 10:18:12 +00:00
TableGen
Target [PowerPC] Reduce names from Power8Vector to P8Vector 2014-10-10 17:21:15 +00:00
Transforms SimplifyCFG: Don't convert phis into selects if we could remove undef behavior 2014-10-10 01:27:02 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile