aboutsummaryrefslogtreecommitdiffstats
path: root/linearize.c
AgeCommit message (Expand)AuthorFilesLines
2011-08-27Make 'linearize_return()' helper functionLinus Torvalds1-22/+26
2011-08-27Make 'linearize_switch()' helper functionLinus Torvalds1-61/+65
2011-08-27Make 'linearize_iterator()' helper functionLinus Torvalds1-40/+45
2011-04-26use ARRAY_SIZE() when possible (continued)Jan Pokorný1-1/+1
2010-03-28Fix incorrect linearization of "x && y && z"Daniel De Graaf1-1/+3
2009-07-29linearize.h: sanitize headerKamil Dudka1-3/+3
2008-12-24Revert the context tracking codeJohannes Berg1-15/+16
2008-12-18Add type information to struct instruction.David Given1-1/+3
2008-04-24fix bug in context tracking codeJohannes Berg1-1/+0
2008-04-24Fix cast instruction generationLinus Torvalds1-3/+3
2008-04-21sparse: simple conditional context trackingJohannes Berg1-16/+6
2008-04-21make sparse keep its promise about context trackingJohannes Berg1-0/+10
2007-07-10fix handling of address_space in casts and assignmentsAl Viro1-0/+1
2007-05-22Improved graph generation using subgraph clusters for functionsDan Sheridan1-0/+1
2007-05-22Use %td when printing a ptrdiff_t to avoid problems on 64-bit platformsJosh Triplett1-1/+1
2007-05-22Revert unintentional inclusion of warning fix in previous commit.Josh Triplett1-1/+1
2007-05-22Add test case for -Wno-old-initializerJosh Triplett1-1/+1
2007-04-20Fix the annotated inline call positionChristopher Li1-0/+4
2007-03-02Add annotation for inline function call.Christopher Li1-7/+37
2007-02-28Disable liveness "dead" instruction by default.Christopher Li1-1/+2
2007-02-26Coding style fix: use parentheses with sizeofJosh Triplett1-1/+1
2007-02-26Fix core dump on huge switchChristopher Li1-1/+4
2007-02-22Fix core dump on anonymous symbol.Christopher Li1-8/+10
2007-01-27Coding style fix: in a pointer type, * goes with the name, not the type.Josh Triplett1-2/+2
2007-01-16Add instruction to pseudo user tracking.Christopher Li1-35/+37
2007-01-16Change the symbol access list to a pseudo listChristopher Li1-5/+5
2006-08-30[PATCH] Parse and track multiple contexts by expressionJosh Triplett1-21/+28
2005-12-31Make local declarations be statements of their ownLinus Torvalds1-7/+15
2005-11-21[PATCH] Add a new opcode: OP_COPY.Luc Van Oostenryck1-0/+5
2005-08-15Clean up iterator handlingLinus Torvalds1-2/+3
2005-06-27[PATCH] makes some needlessly global code staticLuc Van Oostenryck1-6/+6
2005-06-26[PATCH] avoid segfault in add_asm_output() after a parse error in asm statementLuc Van Oostenryck1-1/+1
2005-06-26[PATCH] avoid segafult after parse errors in castsLuc Van Oostenryck1-0/+3
2005-06-26[PATCH] avoid segfault after parse errors in assignementsLuc Van Oostenryck1-0/+3
2005-06-26[PATCH] avoid segfault in linearize_asm_statement() after a parse error in as...Luc Van Oostenryck1-1/+1
2005-06-26[PATCH] Avoid segfault when code is present after a goto statementLuc Van Oostenryck1-2/+2
2005-06-21Be more careful about linearizing conditionalsLinus Torvalds1-3/+7
2005-06-20[PATCH] segfault on bad ternary conditionalLuc Van Oostenryck1-1/+5
2005-06-19Fix SIGSEGV on assignment to bad left side.Linus Torvalds1-2/+2
2005-04-07Add support for context checking functions.Linus Torvalds1-5/+13
2005-04-07Avoid SIGSEGV when linearizing bad expressions.Linus Torvalds1-1/+1
2005-04-07Make each instruction have a position of its own.Linus Torvalds1-0/+6
2005-04-07Add compile-time "range-check" infrastructure to sparseLinus Torvalds1-3/+21
2005-04-07Split OP_CAST into signed, unsigned and FP casts.Linus Torvalds1-0/+8
2005-04-07Make the example code generator do something half-way saneLinus Torvalds1-0/+1
2005-04-07Split the binops where signedness matters into unsigned and signed.Linus Torvalds1-14/+34
2005-04-07Make linearizer able to handle assignment ops where theLinus Torvalds1-41/+50
2005-04-07Linearize EXPR_POS initializers more carefully: they canLinus Torvalds1-4/+2
2005-04-07Get comparison sizes right.Linus Torvalds1-2/+2
2005-04-07Split OP_SETVAL into OP_SETVAL (fp expressions and labels) and OP_SYMADDRLinus Torvalds1-24/+29
2005-04-07Save off the asm parameter name too.Linus Torvalds1-14/+38
2005-04-07Make asm linearization not drop the constraints.Linus Torvalds1-25/+53
2005-04-07Add the argument pseudos to the "enter" instructionLinus Torvalds1-1/+5
2005-04-07Sort switch target listLinus Torvalds1-0/+27
2005-04-07Clean up linearizer output that got uglified by the show_instruction()Linus Torvalds1-4/+3
2005-04-07Make pretty helper functions for showing individual instructionsLinus Torvalds1-7/+7
2005-04-07Add "stream_name()" helper function, and use it.Linus Torvalds1-3/+3
2005-04-07Remove phi source merging.Linus Torvalds1-2/+0
2005-04-07Remove OP_SETVAL after symbol-pseudo simplification.Linus Torvalds1-1/+1
2005-04-07Fix undefined symbol linearization caseLinus Torvalds1-1/+1
2005-04-07Expose "show_bb()" for debugging, and make it do more appropriateLinus Torvalds1-1/+1
2005-04-07CSE may have caused more unreachable bb's, so do a secondLinus Torvalds1-0/+1
2005-04-07Make OP_PHISOURCE track the OP_PHI instructions that it defines.Linus Torvalds1-4/+9
2005-04-07Don't output code for static/toplevel symbols.Linus Torvalds1-0/+4
2005-04-07Linearize anonymous symbol initializers when we encounter them,Linus Torvalds1-11/+9
2005-04-07Clean up debug output from warning.Linus Torvalds1-1/+1
2005-04-07Fix silly asm input pseudo linearization.Linus Torvalds1-1/+1
2005-04-07Linearize inline asm statementsLinus Torvalds1-3/+81
2005-04-07Fix flow: we only remove one parent at a time. The same blockLinus Torvalds1-1/+1
2005-04-07Make the "entrypoint" be a special OP_ENTRY instruction instead ofLinus Torvalds1-7/+15
2005-04-07Expose "show_pseudo()" to the world.Linus Torvalds1-1/+1
2005-04-07Track argument pseudo lifetimes too.Linus Torvalds1-2/+2
2005-04-07Add pseudo death-note tracking.Linus Torvalds1-0/+7
2005-04-07Be more graceful about missing types and malformed expressions.Linus Torvalds1-4/+6
2005-04-07Be more careful with symbol sizes - don't SIGSEGV on undefined stuff.Linus Torvalds1-12/+17
2005-04-07Remove OP_SETCC, make OP_SEL bigger instead.Linus Torvalds1-30/+21
2005-04-07Fix embarrassing linearized bug with empty iterator post-conditions.Linus Torvalds1-9/+6
2005-04-07Duh! Remove a very very incorrect left-over flow simplification call.Linus Torvalds1-1/+0
2005-04-07Do real flow simplification only after liveness analysis.Linus Torvalds1-2/+15
2005-04-07Simplify trivial casts (and handle pointers specially).Linus Torvalds1-1/+25
2005-04-07Be more forgiving about missing types in linearization.Linus Torvalds1-12/+22
2005-04-07Rename "register.c" into "liveness.c". That's what it does.Linus Torvalds1-1/+1
2005-04-07Associate pseudos with the symbol name whose value they got.Linus Torvalds1-3/+15
2005-04-07Allow multiple levels of verbosity, and print out the _really_Linus Torvalds1-21/+24
2005-04-07Start tracking cross-basic-block pseudo usage.Linus Torvalds1-1/+18
2005-04-07Start using instruction sizes properly.Linus Torvalds1-197/+212
2005-04-07When replacing OP_SWITCH with OP_BR, make sure to removeLinus Torvalds1-1/+3
2005-04-07Add entrypoint pointer to each bb.Linus Torvalds1-18/+19
2005-04-07Add a flow verification thing.Linus Torvalds1-0/+2
2005-04-07Allow CSE to run after bb packing. Linus Torvalds1-6/+5
2005-04-07Make list-ptr remove/replace take a count.Linus Torvalds1-1/+1
2005-04-07Don't add the fake parent to the entryblock - we don't need it.Linus Torvalds1-3/+0
2005-04-07Make linearizer use the proper inc/dec operation value.Linus Torvalds1-1/+1
2005-04-07Add a semblance of sanity to structure member accesses.Linus Torvalds1-50/+37
2005-04-07Kill long-dead pseudo-reuse code.Linus Torvalds1-4/+1
2005-04-07Add a final pseudo usage tracking phase, which keepsLinus Torvalds1-0/+3
2005-04-07Fix pseudo->def on OP_PHI->OP_SEL conversion.Linus Torvalds1-1/+7
2005-04-07Clean up "linearize_symbol()" by making the function linearizerLinus Torvalds1-59/+65
2005-04-07Make the CSE "repeat" logic be more fine-grained than justLinus Torvalds1-4/+1
2005-04-07Clean up OP_STORE kill, and remove the use of the data.Linus Torvalds1-0/+12
2005-04-07More undefined symbol handling - don't oops on printout.Linus Torvalds1-0/+4
2005-04-07Change linearizer debug output syntax for call instructions.Linus Torvalds1-1/+3
2005-04-07Handle undefined symbols a bit more gracefully.Linus Torvalds1-1/+5
2005-04-07Do early CSE before even doing the symbol simplification.Linus Torvalds1-6/+15
2005-04-07Use cleaned-up ptr list removal for removing basic blocksLinus Torvalds1-9/+1
2005-04-07Be a lot more proper about rewriting end branches.Linus Torvalds1-11/+26
2005-04-07Simplify constant "conditional" branches and OP_SETCC/OP_SEL instructions.Linus Torvalds1-3/+9
2005-04-07Clean up rewriting a switch into a branch.Linus Torvalds1-3/+5
2005-04-07Make phi pseudos be a type of their own.Linus Torvalds1-7/+38
2005-04-07Fix up various pseudo usage list issues:Linus Torvalds1-1/+28
2005-04-07Oops. Forgot to add usage of a dominator list pseudo.Linus Torvalds1-12/+0
2005-04-07Don't print no-ops and unused instructions unless verbose.Linus Torvalds1-6/+12
2005-04-07Don't bother showing symbols that have been successfully removedLinus Torvalds1-0/+4
2005-04-07Don't show killed basic blocks.Linus Torvalds1-0/+2
2005-04-07Don't silently delete unnecessary phi_nodes that were generated by "return".Linus Torvalds1-1/+0
2005-04-07Oops. Clean up some left-overs from phi removal.Linus Torvalds1-8/+8
2005-04-07Remove "struct phi", replace with instruction that generates a pseudo.Linus Torvalds1-44/+43
2005-04-07Do if-conversion.Linus Torvalds1-1/+23
2005-04-07Do "flow" simplification earlier (separate from packing).Linus Torvalds1-7/+3
2005-04-07Make bb->pos a bit more accurate.Linus Torvalds1-0/+6
2005-04-07Kill trivially dead instructionsLinus Torvalds1-0/+2
2005-04-07Make the "cse nop" a bit more informativeLinus Torvalds1-1/+1
2005-04-07Make CSE convert instructions to OP_NOPLinus Torvalds1-0/+3
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