Arnold Schwaighofer
bfcc1fface
Make splitBasicBlock public.
...
Swift SVN r27841
2015-04-27 23:44:55 +00:00
Roman Levenstein
71b0e7b4a6
[sil-simplify-cfg] Fix a bug in CheckedCastBrJumpThreading.
...
Be more careful when replacing targets of terminators. This finally implements a long-due FIXME in CheckedCastBrJumpThreading.
rdar://20345557.
Swift SVN r26725
2015-03-30 21:10:38 +00:00
Arnold Schwaighofer
819eba2360
Add a utility function to split edges between two basic blocks.
...
Swift SVN r25980
2015-03-11 17:25:15 +00:00
Arnold Schwaighofer
0e327ea05b
Add a mergeBasicBlockWithSuccessor utility function.
...
Swift SVN r25614
2015-02-27 22:07:35 +00:00
Andrew Trick
d84feff62b
Add a changeBranchTarget helper.
...
I refactored, generalized, and cleaned up an existing helper.
I also removed hard-coded assumptions about successor indices.
There's no point giving CondBranch a true/false API if we don't respect it.
Swift SVN r24001
2014-12-18 01:26:45 +00:00
Arnold Schwaighofer
ac34b02690
Add utility function to split all critical edges in a function.
...
Conditionally, only split edges from terminators that don't support arbitrary
basic block arguments (switch_enum, etc).
Swift SVN r22757
2014-10-15 17:07:03 +00:00
Arnold Schwaighofer
51ea3a66cc
Add a utility function to split a basic block at an instruction and update the
...
dominator tree and loop info.
Swift SVN r21930
2014-09-12 21:05:24 +00:00
Arnold Schwaighofer
5ad13207e5
Add a loop rotation pass
...
This is to support loop invariant code motion and bound check
hoisting.
Disabled for now.
Swift SVN r19635
2014-07-07 21:05:23 +00:00
Arnold Schwaighofer
21de790f41
Add CFG utilities to update 'phi' nodes and split critical edges
...
This infrastructure will be used by follow up patches.
Swift SVN r19631
2014-07-07 21:05:21 +00:00