Mass rename Ebb and relatives to Block (#1365)

* Manually rename BasicBlock to BlockPredecessor

BasicBlock is a pair of (Ebb, Inst) that is used to represent the
basic block subcomponent of an Ebb that is a predecessor to an Ebb.

Eventually we will be able to remove this struct, but for now it
makes sense to give it a non-conflicting name so that we can start
to transition Ebb to represent a basic block.

I have not updated any comments that refer to BasicBlock, as
eventually we will remove BlockPredecessor and replace with Block,
which is a basic block, so the comments will become correct.

* Manually rename SSABuilder block types to avoid conflict

SSABuilder has its own Block and BlockData types. These along with
associated identifier will cause conflicts in a later commit, so
they are renamed to be more verbose here.

* Automatically rename 'Ebb' to 'Block' in *.rs

* Automatically rename 'EBB' to 'block' in *.rs

* Automatically rename 'ebb' to 'block' in *.rs

* Automatically rename 'extended basic block' to 'basic block' in *.rs

* Automatically rename 'an basic block' to 'a basic block' in *.rs

* Manually update comment for `Block`

`Block`'s wikipedia article required an update.

* Automatically rename 'an `Block`' to 'a `Block`' in *.rs

* Automatically rename 'extended_basic_block' to 'basic_block' in *.rs

* Automatically rename 'ebb' to 'block' in *.clif

* Manually rename clif constant that contains 'ebb' as substring to avoid conflict

* Automatically rename filecheck uses of 'EBB' to 'BB'

'regex: EBB' -> 'regex: BB'
'$EBB' -> '$BB'

* Automatically rename 'EBB' 'Ebb' to 'block' in *.clif

* Automatically rename 'an block' to 'a block' in *.clif

* Fix broken testcase when function name length increases

Test function names are limited to 16 characters. This causes
the new longer name to be truncated and fail a filecheck test. An
outdated comment was also fixed.
This commit is contained in:
Ryan Hunt
2020-02-07 10:46:47 -06:00
committed by GitHub
parent a136d1cb00
commit 832666c45e
370 changed files with 8090 additions and 7988 deletions

View File

@@ -1,4 +1,4 @@
use cranelift_codegen::ir::{Ebb, Function, Inst, InstructionData, Signature};
use cranelift_codegen::ir::{Block, Function, Inst, InstructionData, Signature};
use serde_derive::{Deserialize, Serialize};
/// Serializable version of the original Cranelift IR
@@ -758,27 +758,27 @@ impl SerInst {
}
}
/// Serializable version of Cranelift IR Ebbs.
/// Serializable version of Cranelift IR Blocks.
#[derive(Clone, Deserialize, Serialize, Debug)]
pub struct SerEbb {
pub ebb: String,
pub struct SerBlock {
pub block: String,
pub params: Vec<String>,
pub insts: Vec<SerInst>,
}
impl SerEbb {
impl SerBlock {
pub fn new(name: String) -> Self {
Self {
ebb: name,
block: name,
params: Vec::new(),
insts: Vec::new(),
}
}
}
pub fn populate_inst(func: &Function, ebb: Ebb) -> Vec<SerInst> {
pub fn populate_inst(func: &Function, block: Block) -> Vec<SerInst> {
let mut ser_vec: Vec<SerInst> = Vec::new();
let ret_iter = func.layout.ebb_insts(ebb);
let ret_iter = func.layout.block_insts(block);
for inst in ret_iter {
let ser_inst: SerInst = SerInst::new(inst, &func);
ser_vec.push(ser_inst);
@@ -786,10 +786,10 @@ pub fn populate_inst(func: &Function, ebb: Ebb) -> Vec<SerInst> {
ser_vec
}
/// Translating Ebb parameters into serializable parameters.
pub fn populate_params(func: &Function, ebb: Ebb) -> Vec<String> {
/// Translating Block parameters into serializable parameters.
pub fn populate_params(func: &Function, block: Block) -> Vec<String> {
let mut ser_vec: Vec<String> = Vec::new();
let parameters = func.dfg.ebb_params(ebb);
let parameters = func.dfg.block_params(block);
for param in parameters {
ser_vec.push(param.to_string());
}
@@ -799,27 +799,27 @@ pub fn populate_params(func: &Function, ebb: Ebb) -> Vec<String> {
/// Serializable Data Flow Graph.
#[derive(Deserialize, Serialize, Debug)]
pub struct SerDataFlowGraph {
ebbs: Vec<SerEbb>,
blocks: Vec<SerBlock>,
}
/// Serialize all parts of the Cranelift Ebb data structure, this includes name, parameters, and
/// Serialize all parts of the Cranelift Block data structure, this includes name, parameters, and
/// instructions.
pub fn populate_ebbs(func: &Function) -> Vec<SerEbb> {
let mut ebb_vec: Vec<SerEbb> = Vec::new();
for ebb in func.layout.ebbs() {
let mut ser_ebb: SerEbb = SerEbb::new(ebb.to_string());
ser_ebb.params = populate_params(&func, ebb);
ser_ebb.insts = populate_inst(&func, ebb);
ebb_vec.push(ser_ebb);
pub fn populate_blocks(func: &Function) -> Vec<SerBlock> {
let mut block_vec: Vec<SerBlock> = Vec::new();
for block in func.layout.blocks() {
let mut ser_block: SerBlock = SerBlock::new(block.to_string());
ser_block.params = populate_params(&func, block);
ser_block.insts = populate_inst(&func, block);
block_vec.push(ser_block);
}
ebb_vec
block_vec
}
/// Serializable Cranelift IR data flow graph, including all ebbs.
/// Serializable Cranelift IR data flow graph, including all blocks.
impl SerDataFlowGraph {
pub fn create_new(func: &Function) -> Self {
Self {
ebbs: populate_ebbs(func),
blocks: populate_blocks(func),
}
}