aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/flow.c
AgeCommit message (Expand)AuthorFilesLines
2021-04-18Merge branches 'fix-phisrc' and 'insert-last-insn' into memops-prepLuc Van Oostenryck1-111/+133
2021-04-17memops: dominates()'s first arg is redundantLuc Van Oostenryck1-2/+2
2021-04-02fix remove_merging_phisrc()Luc Van Oostenryck1-10/+20
2021-03-28better check validity of phi-sourcesLuc Van Oostenryck1-8/+13
2021-03-28correctly count phi argumentsLuc Van Oostenryck1-1/+17
2021-03-19fix phisources during SWITCH-BR conversionLuc Van Oostenryck1-0/+20
2021-03-19fix phisources during CBR-BR conversionLuc Van Oostenryck1-0/+5
2021-03-19add remove_phisources()Luc Van Oostenryck1-0/+43
2021-03-19rename insert_branch() to convert_to_jump()Luc Van Oostenryck1-2/+2
2021-03-19let insert_branch() return a statusLuc Van Oostenryck1-2/+5
2021-03-19move insert_branch() to flow.cLuc Van Oostenryck1-0/+26
2021-03-19remove insert_branch() redundant argLuc Van Oostenryck1-1/+1
2021-03-19Revert "simplify CBR-CBR on the same condition"Luc Van Oostenryck1-106/+0
2021-03-08Merge branch 'uniq-phinode'Luc Van Oostenryck1-20/+1
2021-03-08phi-sources can only have a single user (or none)Luc Van Oostenryck1-20/+1
2021-02-21asm-mem: teach dominates() about OP_ASMLuc Van Oostenryck1-0/+6
2021-02-21reorg dominates()Luc Van Oostenryck1-4/+7
2020-12-02Merge branch 'kill-replace' into nextLuc Van Oostenryck1-47/+1
2020-11-28fix wrong killing of stores partially dominated by a loadLuc Van Oostenryck1-2/+0
2020-11-28replace convert_load_instruction() by replace_with_pseudo()Luc Van Oostenryck1-6/+1
2020-11-28memops: move rewrite_load_instruction() hereLuc Van Oostenryck1-41/+0
2020-11-21remove unneeded REPEAT_SYMBOL_CLEANUPLuc Van Oostenryck1-2/+1
2020-11-19Merge branch 'diamond'Luc Van Oostenryck1-0/+106
2020-11-17Merge branch 'pack-early'Luc Van Oostenryck1-23/+178
2020-11-17simplify CBR-CBR on the same conditionLuc Van Oostenryck1-0/+106
2020-11-17cfg: early CFG simplificationLuc Van Oostenryck1-0/+78
2020-11-17cfg: remove phi-nodes when merging BBsLuc Van Oostenryck1-0/+23
2020-11-17cfg: remove phi-sources when merging BBsLuc Van Oostenryck1-0/+42
2020-11-15cfg: extract merge_bb() from pack_basic_blocks()Luc Van Oostenryck1-23/+35
2020-11-14doc: add header for flow simplification related documentationLuc Van Oostenryck1-3/+4
2018-08-25add a flag for volatile memopsLuc Van Oostenryck1-1/+1
2018-08-25Merge branch 'ssa' into tipLuc Van Oostenryck1-278/+0
2018-08-25Merge branch 'kill-dead-stores' into tipLuc Van Oostenryck1-22/+73
2018-07-25add copy_ptr_list()Luc Van Oostenryck1-1/+1
2018-07-01ssa: remove unused simplify_symbol_usage()Luc Van Oostenryck1-278/+0
2018-07-01kds: clarify kill_dead_stores_bb()Luc Van Oostenryck1-14/+14
2018-06-30kds: fix recursion in kill_dead_stores_bb()Luc Van Oostenryck1-5/+2
2018-06-30kds: shortcut for kill_dead_stores()Luc Van Oostenryck1-0/+27
2018-06-30kds: add interface for kill_dead_stores()Luc Van Oostenryck1-0/+13
2018-06-30kds: rename kill_dead_stores() to kill_dead_stores_bb()Luc Van Oostenryck1-3/+3
2018-06-30kds: add explanation to kill_dead_stores()Luc Van Oostenryck1-0/+14
2018-03-14optim: load simplification should repeat optimizationLuc Van Oostenryck1-1/+5
2018-03-14optim: pack bb must set REPEAT_CFGLuc Van Oostenryck1-1/+1
2018-03-11taint: let check_access() warn just onceLuc Van Oostenryck1-1/+5
2018-03-01IR: remove now unused OP_LNOP & OP_SNOPLuc Van Oostenryck1-3/+1
2018-02-24fix accesses through incorrect union membersJann Horn1-2/+2
2018-02-20ban use of 'true' or 'false'Luc Van Oostenryck1-8/+7
2018-02-16Merge branches 'fix-converted-loads', 'kill-deadborn-loads', 'kill-dead-loads...Luc Van Oostenryck1-17/+6
2018-02-14kill dead stores when simplifying symbolsLuc Van Oostenryck1-13/+4
2018-02-14fix usage of deadborn loadsLuc Van Oostenryck1-1/+1
2018-02-14fix killing of converted loadsLuc Van Oostenryck1-3/+1
2018-02-11fix missing checks for deleted instructionsLuc Van Oostenryck1-4/+16
2018-02-10fix dead dominatorLuc Van Oostenryck1-1/+1
2017-11-16give a type to OP_PHISOURCEsLuc Van Oostenryck1-1/+1
2017-11-16inlined calls should not block BB packingLuc Van Oostenryck1-0/+1
2017-11-10volatile loads are side-effects tooLuc Van Oostenryck1-0/+7
2017-08-11Merge remote-tracking branch 'luc/remove-singlestore-shortcut'Christopher Li1-37/+2
2017-08-11Remove single-store shortcutLuc Van Oostenryck1-37/+2
2017-07-31fix crash in rewrite_branch()Luc Van Oostenryck1-1/+1
2017-07-31fix BB dependencies on phi-nodesLuc Van Oostenryck1-16/+15
2017-07-31fix infinite simplification loopsLuc Van Oostenryck1-1/+2
2017-07-31fix ptrlist corruption while killing unreachable BBsLuc Van Oostenryck1-2/+0
2017-06-21fix: try_to_simplify_bb eargernessLuc Van Oostenryck1-0/+27
2017-06-21fix OP_PHI usage in try_to_simplify_bb() only when non-bogusLuc Van Oostenryck1-29/+9
2017-05-19Merge branches 'dump-macros-v2', 'fix-predefined-size', 'fix-bool-context', '...v0.5.1-rc1Luc Van Oostenryck1-2/+10
2017-05-19fix: kill old branch in insert_branch()Luc Van Oostenryck1-1/+0
2017-05-12fix missing reloadLuc Van Oostenryck1-1/+10
2017-05-12let kill_unreachable_bbs() clear REPEAT_CFG_CLEANUPLuc Van Oostenryck1-0/+2
2017-04-30Merge branches 'sent/float-expand-v2', 'sent/fix-kill-ttsb-v2', 'sent/fix-con...Luc Van Oostenryck1-2/+31
2017-04-30be more careful with concat_user_list()Luc Van Oostenryck1-1/+2
2017-04-01fix OP_PHI usage in try_to_simplify_bb(), correctlyLuc Van Oostenryck1-1/+29
2017-03-06split OP_BR between unconditional & conditional: OP_CBRLuc Van Oostenryck1-6/+11
2017-02-16fix OP_PHI usage in try_to_simplify_bb()Luc Van Oostenryck1-0/+2
2017-02-16fix killing of rewritten loadsLuc Van Oostenryck1-1/+1
2017-02-16kill_instruction() may need to be forced or notLuc Van Oostenryck1-2/+1
2017-02-13fix phisrc mixupLuc Van Oostenryck1-7/+3
2017-02-13fix superfluous phisrcLuc Van Oostenryck1-0/+13
2011-04-13flow.c: make comment for `dominates' reflect codeJan Pokorný1-2/+2
2008-12-17Unhardcode byte size being 8 bits.David Given1-4/+6
2007-03-09Fix typos in commentsJosh Triplett1-5/+4
2007-01-16Update usage chain for dead branch instruction.Christopher Li1-1/+1
2007-01-16Update usage chain for dead instructionsChristopher Li1-0/+1
2007-01-16Add instruction to pseudo user tracking.Christopher Li1-25/+26
2007-01-16Change the symbol access list to a pseudo listChristopher Li1-4/+4
2005-04-07Use the new per-instruction position information for betterLinus Torvalds1-1/+1
2005-04-07Make "check_access()" take the size of the access properlyLinus Torvalds1-2/+2
2005-04-07Add warning for accessing outside of a symbolLinus Torvalds1-1/+19
2005-04-07Split OP_SETVAL into OP_SETVAL (fp expressions and labels) and OP_SYMADDRLinus Torvalds1-10/+5
2005-04-07Remove phi source merging.Linus Torvalds1-10/+0
2005-04-07Remove unreachable bb's from the list of bb's when we kill them.Linus Torvalds1-0/+3
2005-04-07When we simplify branches-to-branches, assert that we actually foundLinus Torvalds1-5/+8
2005-04-07Mark asms as having side effects, so that we don'tLinus Torvalds1-0/+8
2005-04-07Much cleaner entrypoint dominance handling: instead of makingLinus Torvalds1-1/+1
2005-04-07Fix conditional branch to same target simplification.Linus Torvalds1-8/+0
2005-04-07Make the "entrypoint" be a special OP_ENTRY instruction instead ofLinus Torvalds1-7/+2
2005-04-07Fix thinko. If we follow a conditional branch, we should _not_Linus Torvalds1-1/+1
2005-04-07Allow conditional branch following to trigger more often.Linus Torvalds1-17/+15
2005-04-07Implement conditional branch following when simplifying branches.Linus Torvalds1-5/+50
2005-04-07Dang. Bitten by that non-canonical phi-list thing again.Linus Torvalds1-2/+6
2005-04-07Split up branch flow simplification a bit in preparation for addingLinus Torvalds1-15/+19
2005-04-07A sparse "context" instruction has side effects. Don't allowLinus Torvalds1-0/+1
2005-04-07Do real flow simplification only after liveness analysis.Linus Torvalds1-26/+68
2005-04-07Move constant switch simplification to the instructionLinus Torvalds1-37/+0
2005-04-07Associate pseudos with the symbol name whose value they got.Linus Torvalds1-0/+2
2005-04-07Start using instruction sizes properly.Linus Torvalds1-8/+6
2005-04-07Don't get confused by infinite loops. They happen, and weLinus Torvalds1-1/+6
2005-04-07Pair up removals from parents and children properly.Linus Torvalds1-0/+1
2005-04-07Remember to kill the use of the conditional if bothLinus Torvalds1-0/+1
2005-04-07Fix entrypoint branch rewriting..Linus Torvalds1-1/+3
2005-04-07When turning a conditional branch into an unconditional one,Linus Torvalds1-1/+5
2005-04-07Clean up bb merging a bit. Still chasing "the bug".Linus Torvalds1-9/+5
2005-04-07Check switch and computed goto target lists too when verifying.Linus Torvalds1-1/+7
2005-04-07Add a flow verification thing.Linus Torvalds1-0/+64
2005-04-07Be more careful when rewriting parent branches.Linus Torvalds1-7/+9
2005-04-07Allow CSE to run after bb packing. Linus Torvalds1-0/+18
2005-04-07Make list-ptr remove/replace take a count.Linus Torvalds1-4/+4
2005-04-07Leave symbol pseudo usage intact when doing phi-node conversion.Linus Torvalds1-1/+3
2005-04-07We had a big comment about destroying the use chains. So fix it already.Linus Torvalds1-10/+1
2005-04-07Expose "dominates()" function for memop domination checking.Linus Torvalds1-8/+7
2005-04-07Export the load instruction conversion functions.Linus Torvalds1-6/+6
2005-04-07Fix check for "local" symbols.Linus Torvalds1-2/+2
2005-04-07Nonlocal memops are non-determinedly dominated by the entry.Linus Torvalds1-0/+3
2005-04-07Be a lot more careful when re-writing branches.Linus Torvalds1-11/+3
2005-04-07Fix total braino in empty block packing.Linus Torvalds1-3/+1
2005-04-07Use "has_use_list()" to determine whether to clear it on killingLinus Torvalds1-6/+4
2005-04-07Be more careful about insn->bb pointers.Linus Torvalds1-5/+1
2005-04-07When packing basic blocks, update the instructions bb pointers.Linus Torvalds1-2/+8
2005-04-07Make the CSE "repeat" logic be more fine-grained than justLinus Torvalds1-0/+5
2005-04-07Clean up OP_STORE kill, and remove the use of the data.Linus Torvalds1-10/+18
2005-04-07Do early CSE before even doing the symbol simplification.Linus Torvalds1-5/+20
2005-04-07More instruction kill care, making sure the use chainsLinus Torvalds1-0/+15
2005-04-07Be more thorough about killing unreachable instructions.Linus Torvalds1-0/+6
2005-04-07Use cleaned-up ptr list removal for removing basic blocksLinus Torvalds1-0/+9
2005-04-07Once again, remember that basic blocks may not have any instructions.Linus Torvalds1-1/+1
2005-04-07When killing a basic block, mark all its instructions unreachable.Linus Torvalds1-1/+7
2005-04-07Handle degenerate case of an instruction rewriting itselfLinus Torvalds1-0/+2
2005-04-07Clean up rewriting a switch into a branch.Linus Torvalds1-4/+4
2005-04-07Move instruction simplification to new file "simplify.c".Linus Torvalds1-2/+4
2005-04-07Validity-check the pseudo 'use' list.Linus Torvalds1-0/+2
2005-04-07Fix up various pseudo usage list issues:Linus Torvalds1-24/+13
2005-04-07Oops. Forgot to add usage of a dominator list pseudo.Linus Torvalds1-1/+1
2005-04-07When checking for a single parent, allow duplicates.Linus Torvalds1-5/+13
2005-04-07Oops. Clean up some left-overs from phi removal.Linus Torvalds1-3/+4
2005-04-07Remove "struct phi", replace with instruction that generates a pseudo.Linus Torvalds1-37/+27
2005-04-07Clear a phinode list that is all empty, so that we don't need to checkLinus Torvalds1-0/+1
2005-04-07Teach basic block packing about deleted phi-nodes and no-ops.Linus Torvalds1-7/+24
2005-04-07Do "flow" simplification earlier (separate from packing).Linus Torvalds1-5/+8
2005-04-07Make CSE convert instructions to OP_NOPLinus Torvalds1-1/+5
2005-04-07Add simple-stupid dominance testing for CSE.Linus Torvalds1-1/+1
2005-04-07Add initial CSE passLinus Torvalds1-11/+2
2005-04-07If all our dominators are the same pseudo, just use it.Linus Torvalds1-14/+17
2005-04-07Revert the last load dominator change.Linus Torvalds1-21/+4
2005-04-07If we find an exclusive dominating load, see if we can follow it further.Linus Torvalds1-4/+21
2005-04-07Remove incorrect left-over from (not useful) old load-loadLinus Torvalds1-2/+0
2005-04-07Move flow analysis out of "linearize.c" and into new "flow.c"Linus Torvalds1-0/+783