Commit Graph

9 Commits

Author SHA1 Message Date
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