aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linearize.c
AgeCommit message (Expand)AuthorFilesLines
2005-04-07Add initial CSE passLinus Torvalds1-1/+7
2005-04-07Move flow analysis out of "linearize.c" and into new "flow.c"Linus Torvalds1-772/+4
2005-04-07Make "value_pseudo()" always return the same pseudo forLinus Torvalds1-1/+14
2005-04-07try_to_simplify_phi() needs to skip killed phi entries.Linus Torvalds1-0/+2
2005-04-07If we have a phi-list of identical entries, collapse it toLinus Torvalds1-21/+38
2005-04-07Factor out the OP_LOAD -> OP_PHI rewrite into a separate function.Linus Torvalds1-23/+31
2005-04-07Don't bother finding dominating loads if we have to searchLinus Torvalds1-3/+9
2005-04-07Ignore uninteresting load-load dominance when converting loads.Linus Torvalds1-1/+7
2005-04-07Do load conversion in reverse order of linearized output,Linus Torvalds1-2/+2
2005-04-07Fix partial dominance case in same basic block as load.Linus Torvalds1-0/+7
2005-04-07Simplify switches on compile-time constant values.Linus Torvalds1-0/+51
2005-04-07Make helper function to kill basic blocks.Linus Torvalds1-7/+12
2005-04-07Simplify multi-jump branches to branches.Linus Torvalds1-2/+13
2005-04-07Add helper function to insert a label at the current position.Linus Torvalds1-7/+26
2005-04-07Now that we unconditionally add a "default" case to the switchLinus Torvalds1-0/+1
2005-04-07Mark unreachable bb's so that you can tell at a glanceLinus Torvalds1-0/+5
2005-04-07Add the default fallthrough case in switch statement linearization.Linus Torvalds1-3/+13
2005-04-07Duh. Local symbols that have their address taken need toLinus Torvalds1-1/+6
2005-04-07Do some more block merging (follow branches).Linus Torvalds1-9/+71
2005-04-07Do some initial basic block packing and remove BB_REACHABLE flag.Linus Torvalds1-5/+98
2005-04-07Remove OP_MOV and copy_pseudo.Linus Torvalds1-27/+3
2005-04-07Do simple killing of dead stores.Linus Torvalds1-7/+108
2005-04-07Show phi source information, so that it's more obvious whichLinus Torvalds1-0/+7
2005-04-07Clean up pseudo and bb usage handling.Linus Torvalds1-55/+40
2005-04-07More dominator fixes.Linus Torvalds1-18/+19
2005-04-07Remove debugging output that I'd mistakenly left in.Linus Torvalds1-2/+0
2005-04-07Do symbol dominance checks for all used symbols.Linus Torvalds1-38/+77
2005-04-07Make sure we register bb usage when rewriting a branch.Linus Torvalds1-1/+1
2005-04-07Remove the phi node rewriting.Linus Torvalds1-48/+0
2005-04-07Add basic block usage list to bb.Linus Torvalds1-17/+35
2005-04-07Remove the horrid iterators.Linus Torvalds1-100/+27
2005-04-07Undo braindamage.Linus Torvalds1-1/+1
2005-04-07Duplicate type removal..Linus Torvalds1-1/+1
2005-04-07When we find a load without a dominator, turn it into a zero.Linus Torvalds1-2/+4
2005-04-07Allow loads to dominate loads.Linus Torvalds1-2/+18
2005-04-07Oops. Off-by-one error in finding dominating basic blocks.Linus Torvalds1-3/+3
2005-04-07Duh. Add usage information to the phi-nodes that we generateLinus Torvalds1-1/+3
2005-04-07Show large integers as hex.Linus Torvalds1-2/+7
2005-04-07Fix up bitfield accesses, and disable the phi-node dupsLinus Torvalds1-2/+4
2005-04-07Do a first pass at making symbols into pseudos.Linus Torvalds1-39/+134
2005-04-07Do some very rough (stupid) symbol access optimizations.Linus Torvalds1-16/+95
2005-04-07When showing symbol pseudos, show the symbol pointer too, not just the name.Linus Torvalds1-1/+1
2005-04-07Fix up handling of "return" target, aka the exitpoint ofLinus Torvalds1-6/+3
2005-04-07Replace OP_LOAD/OP_STORE with OP_LNOP/OP_SNOP when making them irrelevant.Linus Torvalds1-2/+8
2005-04-07Make the linearizer only try to do power-of-2 "native" stores.Linus Torvalds1-0/+2
2005-04-07Prettier debug printout - fix missing \nLinus Torvalds1-1/+1
2005-04-07Make it easier to see what replaced instructions.Linus Torvalds1-14/+23
2005-04-07Remove deathnotesLinus Torvalds1-62/+9
2005-04-07Sanity-check the instructions we walk over when replacingLinus Torvalds1-5/+7
2005-04-07Make the pseudo usage list be a list of pointers toLinus Torvalds1-71/+62
2005-04-07Do a very stupid single-store usage simplification.Linus Torvalds1-0/+76
2005-04-07Add "argument pseudo" for incoming arguments to a function.Linus Torvalds1-1/+31
2005-04-07Make initializers use the proper symbol pseudo.Linus Torvalds1-1/+1
2005-04-07Show usage notes for symbols.Linus Torvalds1-3/+21
2005-04-07Add a few missing pseudo usage-notesLinus Torvalds1-0/+2
2005-04-07Each pseudo has its "def" pointer, they now also have "use" pointers.Linus Torvalds1-0/+24
2005-04-07Use the new value pseudos instead of add_const_value()Linus Torvalds1-12/+5
2005-04-07Remove EXPR_BITFIELD entirely.Linus Torvalds1-11/+2
2005-04-07Pack basic blocks only after phi node operations.Linus Torvalds1-1/+3
2005-04-07Fix up phi node simplification for new pseudos.Linus Torvalds1-23/+40
2005-04-07Simplify "copy_pseudo()"Linus Torvalds1-0/+3
2005-04-07Introduce "value pseudos" and implicit deathnotes.Linus Torvalds1-43/+63
2005-04-07misc pseudo cleanupsLinus Torvalds1-6/+16
2005-04-07Use the symbol pseudo concept for call targets too.Linus Torvalds1-5/+14
2005-04-07Allow "pseudo-pseudos", which are a temporary symbol reference.Linus Torvalds1-20/+44
2005-04-07Use direct symbol accesses for all symbols, not just locals.Linus Torvalds1-15/+2
2005-04-07Add usage refcounting to pseudos to make deathnotes come out right.Linus Torvalds1-7/+13
2005-04-07Re-do memory access linearization.Linus Torvalds1-104/+211
2005-04-07Separate explicit and implied casts.Linus Torvalds1-0/+1
2005-04-07Don't do assignment replacement at type evaluation time.Linus Torvalds1-0/+20
2005-04-07Don't bother masking the value we store into a bitfield.Linus Torvalds1-7/+3
2005-04-07Remove expansion of "short" conditionals at evaluation time.Linus Torvalds1-13/+65
2005-04-07Use linearize_ptr_list() to avoid internal knowledge about theLinus Torvalds1-9/+10
2005-04-07[PATCH] linearize bitfield initializerChristopher Li1-10/+12
2005-04-07[PATCH] Linearize initializerChristopher Li1-39/+60
2005-04-07Don't generate invalid phi-nodes.Linus Torvalds1-2/+2
2005-04-07Remove stale EXPR_ASSIGNMENT binop linearization.Linus Torvalds1-17/+0
2005-04-07Do silly phi-node "expansion" as the last phase of theLinus Torvalds1-0/+63
2005-04-07Add deathnotes for block statement nodes and void casts.Linus Torvalds1-2/+8
2005-04-07Remove remnants of two-expression x ? : y handling..Linus Torvalds1-16/+8
2005-04-07Add deathnotes for the pseudo's we use.Linus Torvalds1-18/+76
2005-04-07Fix show-linearize symbol SETVAL output.Linus Torvalds1-5/+8
2005-04-07Be more forgiving about bad 'goto' statement linearization.Linus Torvalds1-1/+4
2005-04-07Don't SIGSEGV on NULL pseudo_t's when showing bad instructions.Linus Torvalds1-20/+28
2005-04-07Start "linearizing" initializers.Linus Torvalds1-22/+96
2005-04-07Break out STMT_COMPOUND linearization into a function of its own.Linus Torvalds1-27/+32
2005-04-07Make "show_bb()" show the source location of the basic blocksLinus Torvalds1-1/+3
2005-04-07Remove 'pos' argument from "add_one_insn()".Linus Torvalds1-18/+17
2005-04-07Output context change markers when linearizing function calls.Linus Torvalds1-0/+17
2005-04-07Associate each pseudo with the instruction that defines it.Linus Torvalds1-23/+25
2005-04-07Simplify <phi+br> basic blocks.Linus Torvalds1-0/+79
2005-04-07Add "struct position" to basic blocks, and give it someLinus Torvalds1-17/+18
2005-04-07Add an internal sparse "context" statement type.Linus Torvalds1-1/+23
2005-04-07Janitorial trivialities.welinder@darter.rentec.com1-1/+1
2005-04-07Many files:welinder@darter.rentec.com1-5/+5
2005-04-07[PATCH] Use more simple/fast iteratorsChristopher Li1-16/+9
2005-04-07Make END_FOR_EACH_PTR[_REVERSE] take the ptr name as an argument.Linus Torvalds1-14/+14
2005-04-07Use the fast/simple list iterators in cases where we don'tLinus Torvalds1-7/+5
2005-04-07Mark the "entry" point in a function, and update it whenLinus Torvalds1-7/+19
2005-04-07Fix assignment to bitfields. (From Christopher Li.)welinder@troll.com1-2/+3
2005-04-07[PATCH] handling of non-lvalue compound objectsAlexander Viro1-0/+22
2005-04-07Create a valid linearization of EXPR_SELECT.Linus Torvalds1-1/+17
2005-04-07EXPR_SAFELOGICAL is unnecessary. It ends up being the same as EXPR_BINOP.Linus Torvalds1-3/+5
2005-04-07Make expression expansion calculate the "cost" of theLinus Torvalds1-0/+19
2005-04-07Add "select" expression.Linus Torvalds1-0/+1
2005-04-07Simplify the trivial direct "indirect" goto.Linus Torvalds1-1/+9
2005-04-07Teach linearizer about computed goto's.Linus Torvalds1-2/+44
2005-04-07Fix linearization of for-loops.Linus Torvalds1-8/+6
2005-04-07Better error message about _which_ label has alreadyLinus Torvalds1-1/+1
2005-04-07Don't die on unknown expressions at linearization time.Linus Torvalds1-1/+1
2005-04-07Linearize EXPR_LABEL as a value, the same as other constants.Linus Torvalds1-1/+1
2005-04-07Fix some linearization warning strings.Linus Torvalds1-2/+2
2005-04-07[PATCH] FP handlingAlexander Viro1-1/+10
2005-04-07[PATCH] comparison operations fixAlexander Viro1-0/+8
2005-04-07Use "-O" to compile sparse, to make the compiler warn more.Linus Torvalds1-4/+5
2005-04-07Make sparse sources themselves be sparse-clean.Linus Torvalds1-7/+7
2005-04-07Generalize linearize_symbol()Jeff Garzik1-5/+8
2005-04-07[PATCH] Fix "return" target handlingChristopher Li1-10/+38
2005-04-07[PATCH] linearization bug fix and bitfield handlingChristopher Li1-22/+83
2005-04-07[PATCH] linearize conditional expressionsChristopher Li1-18/+27
2005-04-07[PATCH] More linearizion funChristopher Li1-124/+121
2005-04-07[PATCH] pack basic blocksChristopher Li1-38/+33
2005-04-07[PATCH] more op-codesChristopher Li1-11/+80
2005-04-07[PATCH] condition branch simplificationChristopher Li1-244/+347
2005-04-07Fix linearization of unconditional iterator.Linus Torvalds1-6/+19
2005-04-07Fix up iterator reachability code for linearization.Linus Torvalds1-5/+11
2005-04-07[PATCH] PATCH: remove dead while loopChristopher Li1-0/+16
2005-04-07Linearize post-ops and casts.Linus Torvalds1-1/+41
2005-04-07Linearize function calls. Kind-of.Linus Torvalds1-0/+77
2005-04-07Linearize logical ops.Linus Torvalds1-18/+70
2005-04-07Add new IL for expression linearization.Linus Torvalds1-33/+256
2005-04-07Add bb "parent" information (ie back-pointers).Linus Torvalds1-8/+34
2005-04-07Make a difference between an anonymous label and aLinus Torvalds1-7/+21
2005-04-07Clean up linearization, and make the basic blocks beLinus Torvalds1-10/+22
2005-04-07Clean up linearize conditional branch generation.Linus Torvalds1-15/+12
2005-04-07Clean up "linearize()" calling convention even more.Linus Torvalds1-78/+81
2005-04-07Clean up "linearize()" calling conventions.Linus Torvalds1-32/+31
2005-04-07Add basic block "ownership", ie each basic block has aLinus Torvalds1-28/+61
2005-04-07Fix the "none of the above" case for switch statements.Linus Torvalds1-0/+3
2005-04-07Add proper linearization of switch statements.Linus Torvalds1-3/+38
2005-04-07Improve statement printout to make the result more readable.Linus Torvalds1-2/+2
2005-04-07Split "STMT_GOTO_BB" into "STMT_CONDTRUE" and "STMT_CONDFALSE".Linus Torvalds1-3/+3
2005-04-07Linearize iterators, at least a first try at it.Linus Torvalds1-3/+75
2005-04-07Add "goto/label" support for linearization.Linus Torvalds1-5/+30
2005-04-07Fix silly "else" case handling bug. If we haveLinus Torvalds1-1/+2
2005-04-07Add real flow control to the basic-block handling.Linus Torvalds1-2/+51
2005-04-07Oops. Fix name clash by renaming the new "copy_ptr_list" to beLinus Torvalds1-2/+2
2005-04-07This add a linearization phase. It's not even close to doneLinus Torvalds1-0/+110