1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
llvm-mirror/lib/Transforms/Scalar
Chris Lattner 8359f9fbbb Use EraseInstFromFunction in a few cases to put the uses of the removed
instruction onto the worklist (in case they are now dead).

Add a really trivial local DSE implementation to help out bitfield code.
We now fold this:

struct S {
    unsigned char a : 1, b : 1, c : 1, d : 2, e : 3;
    S();
};

S::S() : a(0), b(0), c(1), d(0), e(6) {}

to this:

void %_ZN1SC1Ev(%struct.S* %this) {
entry:
        %tmp.1 = getelementptr %struct.S* %this, int 0, uint 0
        store ubyte 38, ubyte* %tmp.1
        ret void
}

much earlier (in gccas instead of only in gccld after DSE runs).

llvm-svn: 26050
2006-02-08 03:25:32 +00:00
..
ADCE.cpp Make iostream #inclusion explicit 2006-01-22 23:32:06 +00:00
BasicBlockPlacement.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
CondPropagate.cpp Fix a fixme in CondPropagate.cpp by moving a PhiNode optimization into 2005-08-04 23:24:19 +00:00
ConstantProp.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
CorrelatedExprs.cpp Improve compatibility with VC2005, patch by Morten Ofstad! 2006-01-26 20:41:32 +00:00
DCE.cpp clean up and modernize this pass. 2005-05-08 18:45:26 +00:00
DeadStoreElimination.cpp Fix a bug where we didn't realize that vaarg reads memory. This fixes 2005-11-30 19:38:22 +00:00
GCSE.cpp Switch these to using ETForest instead of DominatorSet to compute itself. 2006-01-11 05:10:20 +00:00
IndVarSimplify.cpp Fix a crash building 176.gcc due to my recent patch, which only fixed 2005-11-18 18:30:47 +00:00
InstructionCombining.cpp Use EraseInstFromFunction in a few cases to put the uses of the removed 2006-02-08 03:25:32 +00:00
LICM.cpp Make iostream #inclusion explicit 2006-01-22 23:32:06 +00:00
LoopStrengthReduce.cpp Use SCEVExpander::InsertCastOfTo instead of our own code. This reduces 2006-02-04 09:52:43 +00:00
LoopUnroll.cpp Make iostream #inclusion explicit 2006-01-22 23:32:06 +00:00
LoopUnswitch.cpp Make iostream #inclusion explicit 2006-01-22 23:32:06 +00:00
LowerAllocations.cpp When a function takes a variable number of pointer arguments, with a zero 2005-10-23 04:37:20 +00:00
LowerGC.cpp FunctionPass's cannot do IPO things. 2006-01-14 19:30:35 +00:00
LowerInvoke.cpp Add support alignment of allocation instructions. 2005-11-05 09:21:28 +00:00
LowerPacked.cpp Lowerpacked and SCCP support for the insertelement operation. 2006-01-17 20:06:55 +00:00
LowerSelect.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
LowerSwitch.cpp Make iostream #inclusion explicit 2006-01-22 23:32:06 +00:00
Makefile DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE now 2005-10-24 02:26:13 +00:00
Mem2Reg.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
Reassociate.cpp Make iostream #inclusion explicit 2006-01-22 23:32:06 +00:00
Reg2Mem.cpp since reg2mem requires it, might as well mention that it preserves it 2005-11-25 16:04:54 +00:00
ScalarReplAggregates.cpp Fix Regression/Transforms/ScalarRepl/2006-01-24-IllegalUnionPromoteCrash.ll 2006-01-24 19:36:27 +00:00
SCCP.cpp Implement some more interesting select sccp cases. This implements: 2006-02-08 02:38:11 +00:00
SimplifyCFG.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
TailDuplication.cpp Make iostream #inclusion explicit 2006-01-22 23:32:06 +00:00
TailRecursionElimination.cpp Implement Transforms/TailCallElim/return-undef.ll, a trivial case 2005-11-05 08:21:11 +00:00