llvm-6502/include/llvm
Quentin Colombet 637582eaf7 When code size is the priority (Oz, MinSize attribute), help llvm
turning a code like this:

if (foo)
   free(foo)

into that:
free(foo)

Move a call to free from basic block FB into FB's predecessor, P,
when the path from P to FB is taken only if the argument of free is
not equal to NULL.

Some restrictions apply on P and FB to be sure that this code motion
is profitable. Namely:
1. FB must have only one predecessor P.
2. FB must contain only the call to free plus an unconditional
   branch to S.
3. P's successors are FB and S.

Because of 1., we will not increase the code size when moving the call
to free from FB to P.
Because of 2., FB will be empty after the move.
Because of 2. and 3., P's branch instruction becomes useless, so as FB
(simplifycfg will do the job).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171762 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07 18:37:41 +00:00
..
ADT Whitespace. 2013-01-05 05:16:53 +00:00
Analysis Move CallGraphSCCPass.h into the Analysis tree; that's where the 2013-01-07 15:26:48 +00:00
Assembly
Bitcode
CodeGen CallingConvLower.h: Use bitfields like unsigned:1 instead of bool:1 . 2013-01-07 11:13:51 +00:00
Config
DebugInfo
ExecutionEngine
IR Move TypeFinder.h into the IR tree, it clearly belongs with the IR library. 2013-01-07 15:43:51 +00:00
MC Add section information for the DWARF5 split debug proposal 2013-01-04 17:59:22 +00:00
Object [Object][ELF] Fix incorrect size of members for the 64 version of Elf_Phdr_Impl. 2013-01-06 03:57:11 +00:00
Option
Support When code size is the priority (Oz, MinSize attribute), help llvm 2013-01-07 18:37:41 +00:00
TableGen Simplify TableGen type-compatibility checks. 2013-01-07 02:30:19 +00:00
Target Sink AddrMode back into TargetLowering, removing one of the most 2013-01-07 15:14:13 +00:00
Transforms Move CallGraphSCCPass.h into the Analysis tree; that's where the 2013-01-07 15:26:48 +00:00
AutoUpgrade.h
CMakeLists.txt Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DebugInfo.h PR14759: Debug info support for C++ member pointers. 2013-01-07 05:51:15 +00:00
DIBuilder.h PR14759: Debug info support for C++ member pointers. 2013-01-07 05:51:15 +00:00
GVMaterializer.h
InitializePasses.h Switch TargetTransformInfo from an immutable analysis pass that requires 2013-01-07 01:37:14 +00:00
InstVisitor.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LinkAllPasses.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LinkAllVMCore.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Linker.h
Pass.h
PassAnalysisSupport.h
PassManager.h
PassManagers.h
PassRegistry.h
PassSupport.h