llvm-6502/include/llvm
Dan Gohman 4b35f83b91 Teach LoopSimplify how to merge multiple loop exits into a single exit,
when one of them can be converted to a trivial icmp and conditional
branch.

This addresses what is essentially a phase ordering problem.
SimplifyCFG knows how to do this transformation, but it doesn't do so
if the primary block has any instructions in it other than an icmp and
a branch. In the given testcase, the block contains other instructions,
however they are loop-invariant and can be hoisted. SimplifyCFG doesn't
have LoopInfo though, so it can't hoist them. And, it's important that
the blocks be merged before LoopRotation, as it doesn't support
multiple-exit loops.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74396 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-27 21:30:38 +00:00
..
ADT Add a 'const' in a comment. 2009-06-27 20:53:16 +00:00
Analysis Eliminate a layer of indirection in LoopInfo and MachineLoopInfo. 2009-06-27 21:22:48 +00:00
Assembly
Bitcode Give embedded metadata its own type instead of relying on EmptyStructTy. 2009-05-30 05:06:04 +00:00
CodeGen Eliminate a layer of indirection in LoopInfo and MachineLoopInfo. 2009-06-27 21:22:48 +00:00
CompilerDriver Make -save-temps behave like in GCC 4.5. 2009-06-25 18:20:10 +00:00
Config CMake: add configure checks for pthread_rwlock_init and pthread_getspecific 2009-06-26 14:35:43 +00:00
Debugger
ExecutionEngine Add a JITEventListener interface that gets called back when a new function is 2009-06-25 02:04:04 +00:00
MC Sketch streamer support for .align, .org functionality. 2009-06-24 19:25:34 +00:00
Support Get rid of the global CFGOnly flag by threading a ShortNames parameters through the GraphViz rendering code. 2009-06-24 17:37:09 +00:00
System Add support for const thread locals. 2009-06-25 23:31:18 +00:00
Target Increase limit for OpActions array 2009-06-24 22:22:02 +00:00
Transforms Teach LoopSimplify how to merge multiple loop exits into a single exit, 2009-06-27 21:30:38 +00:00
AbstractTypeUser.h
Argument.h
Attributes.h Cosmetic changes to parameter attribute verification. 2009-06-11 08:11:03 +00:00
AutoUpgrade.h
BasicBlock.h
CallGraphSCCPass.h
CallingConv.h Address review comments: add 3 ARM calling conventions. 2009-06-16 18:50:49 +00:00
CMakeLists.txt
Constant.h Revert r73790, and replace it with a significantly less ugly solution. Rather than trying to make the global reader-writer lock work, 2009-06-20 00:24:58 +00:00
Constants.h Add constructor to create MDString using std::string 2009-06-24 22:42:39 +00:00
DerivedTypes.h Forgot this file in my last commit. 2009-06-16 22:56:04 +00:00
Function.h Implement and use new method Function::hasAddressTaken(). 2009-06-10 08:41:11 +00:00
GlobalAlias.h
GlobalValue.h Revert r73790, and replace it with a significantly less ugly solution. Rather than trying to make the global reader-writer lock work, 2009-06-20 00:24:58 +00:00
GlobalVariable.h
InlineAsm.h
InstrTypes.h Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
Instruction.def Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
Instruction.h Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
Instructions.h Remove getType() overrides for ExtractValueInst and InsertValueInst. 2009-05-18 18:46:57 +00:00
IntrinsicInst.h
Intrinsics.h
Intrinsics.td Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td Add missing argument for vtbx intrinsic. 2009-06-26 22:27:22 +00:00
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsX86.td
IntrinsicsXCore.td
LinkAllPasses.h Scaffolding for LDA pass. 2009-06-24 21:29:13 +00:00
LinkAllVMCore.h
Linker.h
MDNode.h Revert r73790, and replace it with a significantly less ugly solution. Rather than trying to make the global reader-writer lock work, 2009-06-20 00:24:58 +00:00
Module.h
ModuleProvider.h
OperandTraits.h
Pass.h
PassAnalysisSupport.h Simplify assertion message to avoid confusion. 2009-06-02 17:26:29 +00:00
PassManager.h
PassManagers.h
PassSupport.h
SymbolTableListTraits.h
Type.h Revert my last series of commits related to Timer and 64-bit atomics. Not all the targets 2009-06-23 20:17:22 +00:00
TypeSymbolTable.h
Use.h Add a comment to refer to the section of the programmer's manual that explains what the pointer tagging in Use is for. 2009-04-30 23:28:50 +00:00
User.h Fix the Win32 VS2008 build: 2009-03-19 23:26:52 +00:00
Value.h
ValueSymbolTable.h