aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linearize.h
AgeCommit message (Expand)AuthorFilesLines
2021-04-20Merge branches misc, cmp-pow2, optim-and-cmp, cmp-and-or and optim-cast-eval ...Luc Van Oostenryck1-0/+5
2021-04-18add helper is_positive()Luc Van Oostenryck1-0/+5
2021-04-18Merge branches 'fix-phisrc' and 'insert-last-insn' into memops-prepLuc Van Oostenryck1-1/+8
2021-03-21add insert_last_instruction()Luc Van Oostenryck1-0/+8
2021-03-19move insert_branch() to flow.cLuc Van Oostenryck1-1/+0
2021-03-19remove insert_branch() redundant argLuc Van Oostenryck1-1/+1
2021-03-09ssa: fix conversion with mismatched size or offsetLuc Van Oostenryck1-1/+1
2021-03-08Merge branch 'uniq-phinode'Luc Van Oostenryck1-1/+7
2021-03-08phi-sources can only have a single user (or none)Luc Van Oostenryck1-1/+7
2021-03-05Merge branch 'slice'Luc Van Oostenryck1-4/+1
2021-02-28slice: OP_SLICE needs the source's type: make it a kind of unopLuc Van Oostenryck1-4/+1
2021-02-28slice: remove unneeded len from OP_SLICELuc Van Oostenryck1-1/+1
2021-02-28linearize.h: fix some 'selfcheck' warningsRamsay Jones1-2/+2
2021-02-21asm-mem: does it output to memory?Luc Van Oostenryck1-0/+1
2021-02-21asm-mem: does it clobber memory?Luc Van Oostenryck1-0/+1
2020-12-31Merge branches 'fix-rem-usage', 'ptrlist-no-mix' and 'diet-bb' into nextLuc Van Oostenryck1-7/+5
2020-12-29add helper has_definition()Luc Van Oostenryck1-0/+5
2020-12-27shrink struct BBLuc Van Oostenryck1-7/+5
2020-11-22canon: simplify calculation of canonical orderLuc Van Oostenryck1-2/+2
2020-11-12linearize: fix a couple of 'selfcheck' warningsRamsay Jones1-0/+2
2020-11-01eval_insn: give an explicit type to compare's operandsLuc Van Oostenryck1-0/+4
2020-10-27Merge branch 'one_use'Luc Van Oostenryck1-2/+2
2020-10-27replace nbr_users() & multi_users() by one_use()Luc Van Oostenryck1-2/+2
2020-10-22memops need long offsetsLuc Van Oostenryck1-1/+1
2019-09-27asm: fix liveness memory operandLuc Van Oostenryck1-0/+1
2018-09-06Merge branch 'rem-trivial-phi' into tipLuc Van Oostenryck1-0/+8
2018-09-01Merge branch 'dead-switch' into tipLuc Van Oostenryck1-0/+6
2018-09-01move DEF_OPCODE() to header fileLuc Van Oostenryck1-0/+8
2018-09-01ir-validate: add validation branch to dead BBLuc Van Oostenryck1-0/+6
2018-08-31Merge branch 'opcode' into tipLuc Van Oostenryck1-119/+0
2018-08-26opcode: centralize opcode definitionLuc Van Oostenryck1-116/+0
2018-08-25add a flag for volatile memopsLuc Van Oostenryck1-0/+1
2018-08-25split memops from unopsLuc Van Oostenryck1-1/+4
2018-08-25symaddr: s/insn->symbol/insn->src/Luc Van Oostenryck1-3/+0
2018-08-25Merge branch 'ssa' into tipLuc Van Oostenryck1-2/+19
2018-08-04Merge branch 'list-optims' (early part) into tipLuc Van Oostenryck1-1/+16
2018-07-25add lookup_ptr_list_entry()Luc Van Oostenryck1-0/+5
2018-07-25add ptr_list_multiple()Luc Van Oostenryck1-0/+5
2018-07-25add ptr_list_empty()Luc Van Oostenryck1-1/+6
2018-07-23extract nbr_users() from unssa.cLuc Van Oostenryck1-0/+5
2018-07-01ssa: phi worklistLuc Van Oostenryck1-0/+1
2018-07-01ssa: phase 1: phi-nodes placementLuc Van Oostenryck1-0/+4
2018-07-01add insert_phi_node()Luc Van Oostenryck1-0/+3
2018-07-01add PSEUDO_UNDEF & undef_pseudo()Luc Van Oostenryck1-1/+3
2018-07-01dom: calculate the dominance treeLuc Van Oostenryck1-0/+4
2018-07-01graph: build the CFG reverse postorder traversalLuc Van Oostenryck1-1/+4
2018-06-28bool: remove OP_{AND,OR}_BOOL instructionsLuc Van Oostenryck1-3/+1
2018-06-23cast: specialize integer castsLuc Van Oostenryck1-2/+2
2018-06-23cast: specialize cast from pointersLuc Van Oostenryck1-0/+1
2018-06-23cast: specialize casts from unsigned to pointersLuc Van Oostenryck1-0/+1
2018-06-23cast: specialize floats to integer conversionLuc Van Oostenryck1-0/+1
2018-06-23cast: specialize FPCAST into [USF]CVTFLuc Van Oostenryck1-1/+2
2018-06-23ir: define an OP_... range for unopsLuc Van Oostenryck1-5/+9
2018-05-06OP_SYMADDR is simply an unopLuc Van Oostenryck1-1/+3
2018-03-18extract alloc_phisrc() from alloc_phi()Luc Van Oostenryck1-0/+2
2018-03-18show_label: add (and use) show_label()Luc Van Oostenryck1-0/+1
2018-03-17add an helper to test the value of a pseudo against zeroLuc Van Oostenryck1-0/+11
2018-03-11add a field 'tainted' to struct instructionLuc Van Oostenryck1-1/+2
2018-03-01IR: let .cond unionize with .src and not .targetLuc Van Oostenryck1-4/+3
2018-03-01IR: remove never-generated instructionsLuc Van Oostenryck1-9/+1
2018-03-01IR: remove now unused OP_LNOP & OP_SNOPLuc Van Oostenryck1-2/+0
2018-02-20no need for signed & unsigned multiplicationLuc Van Oostenryck1-1/+1
2018-02-16cleanup: remove unused 'struct pseudo_ptr_list'Luc Van Oostenryck1-6/+0
2018-02-13add helper: has_users()Luc Van Oostenryck1-0/+5
2018-02-13add helper for pseudo's user-list's sizeLuc Van Oostenryck1-0/+5
2018-01-08add OP_SETFVALLuc Van Oostenryck1-0/+4
2017-11-18add support of floating-point specific arithmetic opsLuc Van Oostenryck1-0/+7
2017-11-18fix support of floating-point compareLuc Van Oostenryck1-0/+18
2017-11-17add support for wider type in switch-caseLuc Van Oostenryck1-1/+1
2017-11-16give a type to OP_PHISOURCEsLuc Van Oostenryck1-1/+1
2017-11-16give a type to all function argumentsLuc Van Oostenryck1-1/+1
2017-11-16add table to "negate" some opcodeLuc Van Oostenryck1-0/+3
2017-11-11fix description setval & symaddrLuc Van Oostenryck1-1/+1
2017-03-06remove unused helper is_branch_goto()Luc Van Oostenryck1-4/+0
2017-03-06split OP_BR between unconditional & conditional: OP_CBRLuc Van Oostenryck1-0/+1
2017-02-13remove unused field 'multijump' in struct instructionLuc Van Oostenryck1-3/+0
2017-02-13give comparable label's names to basic blocksLuc Van Oostenryck1-1/+4
2012-02-04sparse, llvm: Make function declaration accessible to backendLinus Torvalds1-0/+1
2011-08-27sparse, llvm: if-else code generationJeff Garzik1-0/+1
2011-08-25sparse, llvm: Implement OP_ADDPekka Enberg1-0/+1
2009-07-29linearize.h: sanitize headerKamil Dudka1-1/+1
2008-12-24Revert the context tracking codeJohannes Berg1-4/+3
2008-12-18Add type information to struct instruction.David Given1-0/+1
2008-04-24fix bug in context tracking codeJohannes Berg1-1/+3
2008-04-21sparse: simple conditional context trackingJohannes Berg1-2/+1
2008-04-21make sparse keep its promise about context trackingJohannes Berg1-1/+1
2007-04-20linearize: DECLARE_ALLOCATOR for asm_constraint and asm_rulesJosh Triplett1-0/+3
2007-03-02Add annotation for inline function call.Christopher Li1-0/+1
2007-01-27Add missing #include "allocate.h" in linearize.h for DECLARE_ALLOCATOR.Josh Triplett1-0/+1
2007-01-27Coding style fix: in a pointer type, * goes with the name, not the type.Josh Triplett1-1/+1
2007-01-16Add instruction to pseudo user tracking.Christopher Li1-3/+25
2007-01-16Change the symbol access list to a pseudo listChristopher Li1-1/+1
2006-09-14bb_terminated: Use boundary values rather than specific opcodesJosh Triplett1-1/+2
2006-08-30[PATCH] Parse and track multiple contexts by expressionJosh Triplett1-0/+1
2006-07-08Fix dropped type information in "add_pseudo()".Linus Torvalds1-1/+1
2005-11-21[PATCH] Add a function to translate the SSA form back to normal form.Luc Van Oostenryck1-0/+1
2005-11-21[PATCH] Add a new opcode: OP_COPY.Luc Van Oostenryck1-0/+3
2005-04-07Add support for context checking functions.Linus Torvalds1-0/+1
2005-04-07Make each instruction have a position of its own.Linus Torvalds1-0/+1
2005-04-07Add compile-time "range-check" infrastructure to sparseLinus Torvalds1-0/+1
2005-04-07Split OP_CAST into signed, unsigned and FP casts.Linus Torvalds1-0/+2
2005-04-07Split the binops where signedness matters into unsigned and signed.Linus Torvalds1-4/+4
2005-04-07Split OP_SETVAL into OP_SETVAL (fp expressions and labels) and OP_SYMADDRLinus Torvalds1-0/+1
2005-04-07Save off the asm parameter name too.Linus Torvalds1-0/+1
2005-04-07Make asm linearization not drop the constraints.Linus Torvalds1-2/+14
2005-04-07Add the argument pseudos to the "enter" instructionLinus Torvalds1-0/+3
2005-04-07Make "remove_pseudo()" return whether it removed a pseudo fromLinus Torvalds1-2/+2
2005-04-07Make pretty helper functions for showing individual instructionsLinus Torvalds1-1/+1
2005-04-07Move remove_pseudo() to linearize.hLinus Torvalds1-0/+4
2005-04-07Expose "show_instruction()" for debugging.Linus Torvalds1-0/+1
2005-04-07Expose "show_bb()" for debugging, and make it do more appropriateLinus Torvalds1-0/+1
2005-04-07Make OP_PHISOURCE track the OP_PHI instructions that it defines.Linus Torvalds1-0/+4
2005-04-07Linearize inline asm statementsLinus Torvalds1-0/+6
2005-04-07Make the "entrypoint" be a special OP_ENTRY instruction instead ofLinus Torvalds1-1/+5
2005-04-07Expose "show_pseudo()" to the world.Linus Torvalds1-0/+1
2005-04-07Add pseudo death-note tracking.Linus Torvalds1-0/+1
2005-04-07Remove OP_SETCC, make OP_SEL bigger instead.Linus Torvalds1-4/+3
2005-04-07Simplify trivial casts (and handle pointers specially).Linus Torvalds1-0/+1
2005-04-07Associate pseudos with the symbol name whose value they got.Linus Torvalds1-0/+1
2005-04-07Start tracking cross-basic-block pseudo usage.Linus Torvalds1-2/+1
2005-04-07Start using instruction sizes properly.Linus Torvalds1-3/+3
2005-04-07Add entrypoint pointer to each bb.Linus Torvalds1-0/+1
2005-04-07Make list-ptr remove/replace take a count.Linus Torvalds1-5/+5
2005-04-07Be a lot more careful when re-writing branches.Linus Torvalds1-0/+6
2005-04-07Kill long-dead pseudo-reuse code.Linus Torvalds1-2/+1
2005-04-07Add a final pseudo usage tracking phase, which keepsLinus Torvalds1-0/+2
2005-04-07Who says you can't do type-safe function-overloading in C?Linus Torvalds1-5/+5
2005-04-07Add some type-safety features to the list pointer operations.Linus Torvalds1-1/+1
2005-04-07Clean up the tests for "pseudo has use list", since add/removeLinus Torvalds1-1/+6
2005-04-07Do early CSE before even doing the symbol simplification.Linus Torvalds1-2/+2
2005-04-07Use cleaned-up ptr list removal for removing basic blocksLinus Torvalds1-0/+5
2005-04-07Simplify constant "conditional" branches and OP_SETCC/OP_SEL instructions.Linus Torvalds1-1/+1
2005-04-07Clean up rewriting a switch into a branch.Linus Torvalds1-1/+1
2005-04-07Make phi pseudos be a type of their own.Linus Torvalds1-0/+1
2005-04-07Fix up various pseudo usage list issues:Linus Torvalds1-2/+3
2005-04-07Oops. Forgot to add usage of a dominator list pseudo.Linus Torvalds1-0/+12
2005-04-07Remove "struct phi", replace with instruction that generates a pseudo.Linus Torvalds1-13/+3
2005-04-07Do if-conversion.Linus Torvalds1-0/+1
2005-04-07Make CSE convert instructions to OP_NOPLinus Torvalds1-0/+1
2005-04-07Move flow analysis out of "linearize.c" and into new "flow.c"Linus Torvalds1-0/+4
2005-04-07Simplify switches on compile-time constant values.Linus Torvalds1-0/+1
2005-04-07Do some initial basic block packing and remove BB_REACHABLE flag.Linus Torvalds1-9/+1
2005-04-07Remove OP_MOV and copy_pseudo.Linus Torvalds1-1/+0
2005-04-07Clean up pseudo and bb usage handling.Linus Torvalds1-2/+1
2005-04-07Do symbol dominance checks for all used symbols.Linus Torvalds1-0/+1
2005-04-07Add basic block usage list to bb.Linus Torvalds1-0/+2
2005-04-07Remove the horrid iterators.Linus Torvalds1-0/+1
2005-04-07Undo braindamage.Linus Torvalds1-1/+2
2005-04-07Duplicate type removal..Linus Torvalds1-2/+1
2005-04-07Do a first pass at making symbols into pseudos.Linus Torvalds1-0/+1
2005-04-07Do some very rough (stupid) symbol access optimizations.Linus Torvalds1-0/+1
2005-04-07Replace OP_LOAD/OP_STORE with OP_LNOP/OP_SNOP when making them irrelevant.Linus Torvalds1-0/+2
2005-04-07Remove deathnotesLinus Torvalds1-1/+0
2005-04-07Make the pseudo usage list be a list of pointers toLinus Torvalds1-3/+4
2005-04-07Add "argument pseudo" for incoming arguments to a function.Linus Torvalds1-0/+1
2005-04-07Show usage notes for symbols.Linus Torvalds1-2/+0
2005-04-07Each pseudo has its "def" pointer, they now also have "use" pointers.Linus Torvalds1-0/+1
2005-04-07Introduce "value pseudos" and implicit deathnotes.Linus Torvalds1-4/+14
2005-04-07Allow "pseudo-pseudos", which are a temporary symbol reference.Linus Torvalds1-0/+1
2005-04-07Add usage refcounting to pseudos to make deathnotes come out right.Linus Torvalds1-0/+1
2005-04-07Re-do memory access linearization.Linus Torvalds1-0/+1
2005-04-07Do silly phi-node "expansion" as the last phase of theLinus Torvalds1-0/+1
2005-04-07Add deathnotes for the pseudo's we use.Linus Torvalds1-0/+1
2005-04-07Start "linearizing" initializers.Linus Torvalds1-0/+1
2005-04-07Associate each pseudo with the instruction that defines it.Linus Torvalds1-0/+3
2005-04-07Add "struct position" to basic blocks, and give it someLinus Torvalds1-0/+1
2005-04-07Add an internal sparse "context" statement type.Linus Torvalds1-0/+7
2005-04-07Mark the "entry" point in a function, and update it whenLinus Torvalds1-0/+1
2005-04-07[PATCH] handling of non-lvalue compound objectsAlexander Viro1-0/+5
2005-04-07Create a valid linearization of EXPR_SELECT.Linus Torvalds1-0/+3
2005-04-07EXPR_SAFELOGICAL is unnecessary. It ends up being the same as EXPR_BINOP.Linus Torvalds1-4/+4
2005-04-07Make expression expansion calculate the "cost" of theLinus Torvalds1-0/+1
2005-04-07Teach linearizer about computed goto's.Linus Torvalds1-0/+1
2005-04-07[PATCH] comparison operations fixAlexander Viro1-1/+5
2005-04-07Generalize linearize_symbol()Jeff Garzik1-1/+2
2005-04-07[PATCH] Fix "return" target handlingChristopher Li1-1/+3
2005-04-07[PATCH] More linearizion funChristopher Li1-22/+22
2005-04-07[PATCH] more op-codesChristopher Li1-8/+17
2005-04-07[PATCH] condition branch simplificationChristopher Li1-13/+97
2005-04-07[PATCH] PATCH: remove dead while loopChristopher Li1-0/+3
2005-04-07Linearize post-ops and casts.Linus Torvalds1-1/+6
2005-04-07Linearize function calls. Kind-of.Linus Torvalds1-0/+3
2005-04-07Linearize logical ops.Linus Torvalds1-0/+1
2005-04-07Add new IL for expression linearization.Linus Torvalds1-1/+52
2005-04-07Clean up linearization, and make the basic blocks beLinus Torvalds1-0/+8
2005-04-07Clean up "linearize()" calling convention even more.Linus Torvalds1-0/+1
2005-04-07Add basic block "ownership", ie each basic block has aLinus Torvalds1-2/+3
2005-04-07Add "goto/label" support for linearization.Linus Torvalds1-1/+1
2005-04-07Add real flow control to the basic-block handling.Linus Torvalds1-0/+1
2005-04-07Oops. Fix name clash by renaming the new "copy_ptr_list" to beLinus Torvalds1-0/+2
2005-04-07This add a linearization phase. It's not even close to doneLinus Torvalds1-0/+27