Jakob Stoklund Olesen
7aef6bd535
Add Cursor::insert_ebb() method.
...
Insert an EBB at the current position and switch to inserting
instructions there. Call the relevant Layout methods to do so.
2016-10-14 14:01:49 -07:00
Jakob Stoklund Olesen
a41b34c11c
Add Layout::insert_ebb_after() method.
...
Symmetrical with the existing insert_ebb().
2016-10-14 13:54:26 -07:00
Jakob Stoklund Olesen
d1fd91021d
Add Layout::split_ebb().
...
This method splits an EBB in two and moves trailing instructions to a
new EBB.
2016-10-14 12:33:54 -07:00
Jakob Stoklund Olesen
54a4b9b0d7
Add Cursor::insert_inst().
...
Insert an instruction at thecurrent cursor position.
2016-10-14 10:09:57 -07:00
Jakob Stoklund Olesen
177ac85db5
Add a LAyout Cursor data structure.
...
A layout cursor can be used instead of an iterator to keep track of a
position in a basic block *and* permitting instructions to be
manipulated.
2016-10-13 14:36:34 -07:00
Jakob Stoklund Olesen
0b8bf530b0
Make functions cloneable for testing.
...
It's not super fast to clone a function, but it is faster than
re-parsing the test case file it came from.
Some tests want to mutate the function, and there may be other tests in
the same script that need the original function.
2016-09-15 08:43:43 -07:00
Morgan Phillips
d8712b2ce6
Add a verifier
...
The current implementation only performs a few basic checks.
2016-09-06 14:09:09 -07:00
Jakob Stoklund Olesen
b266c28767
Re-export common types in the cretonne::ir module.
...
Clients should not have to navigate the ir sub-modules to find commonly used
types.
2016-08-12 16:11:38 -07:00
Jakob Stoklund Olesen
8296e92ddc
Move entry_block() into Layout.
...
The single entry block in a function is simply the first block in the layout.
Remove the 'entry' keyword from the textual IL, the lexer and parser.
2016-07-22 10:06:51 -07:00
Jakob Stoklund Olesen
27cb00ef42
Rename the 'repr' module to 'ir'.
...
This module and its submodules define the Intermidiate Representation of the
Cretonne IL.
2016-07-22 09:34:28 -07:00