Skip to content

Brilc key error #322

Description

@oflatt

Here's a bril file that causes brilc to report the following error:

File "/Users/oflatt/eggcc/./bril-llvm/brilc", line 161, in __init__
    types[i['dest']] = types[i['args'][0]]
KeyError: 'v68__1'

Perhaps the bril code is invalid in some way? Or there's a brilc bug

Bril code:

@orig_main(v0: int, v1: int) {
  print v0;
}
@main {
  v0_: int = const 10;
  v1_: int = const 1;
  v2_: int = const 1000;
  v3_: int = id v0_;
  v4_: int = id v1_;
  v5_: int = id v2_;
.v6_:
  v7_: bool = lt v3_ v5_;
  br v7_ .v8_ .v9_;
.v8_:
  v10_: int = const 10;
  v11_: int = id v3_;
  v12_: int = id v4_;
  v13_: int = id v10_;
  v14_: int = id v5_;
.v15_:
  v16_: bool = lt v13_ v14_;
  br v16_ .v17_ .v18_;
.v17_:
  v19_: int = const 0;
  v20_: int = id v13_;
  v21_: int = id v11_;
  v22_: int = id v19_;
.v23_:
  v24_: bool = lt v21_ v20_;
  br v24_ .v25_ .v26_;
.v25_:
  v27_: int = sub v20_ v21_;
  v28_: int = id v20_;
  v29_: int = id v27_;
  v30_: int = id v21_;
  v31_: bool = id v24_;
  v32_: int = id v22_;
.v33_:
  v34_: bool = eq v22_ v29_;
  br v34_ .v35_ .v36_;
.v35_:
  v37_: bool = const false;
  v38_: int = id v20_;
  v39_: bool = id v37_;
  v40_: int = id v21_;
  v41_: int = id v22_;
.v42_:
  v43_: bool = not v34_;
  v20_: int = id v38_;
  v21_: int = id v40_;
  v22_: int = id v22_;
  br v43_ .v23_ .v44_;
.v44_:
  print v20_;
  v45_: bool = const true;
  v46_: int = add v12_ v13_;
  v47_: int = id v11_;
  v48_: int = id v12_;
  v49_: bool = id v45_;
  v50_: int = id v46_;
  v51_: int = id v14_;
.v52_:
  v11_: int = id v11_;
  v12_: int = id v12_;
  v13_: int = id v50_;
  v14_: int = id v14_;
  br v16_ .v15_ .v53_;
.v53_:
  v54_: bool = const true;
  v55_: int = add v11_ v12_;
  v56_: bool = id v54_;
  v57_: int = id v55_;
  v58_: int = id v12_;
  v59_: int = id v14_;
.v60_:
  v3_: int = id v57_;
  v4_: int = id v58_;
  v5_: int = id v59_;
  br v7_ .v6_ .v61_;
.v36_:
  br v24_ .v62_ .v63_;
.v62_:
  v64_: bool = const true;
  v65_: int = id v29_;
  v66_: bool = id v64_;
  v67_: int = id v21_;
  v68_: int = id v22_;
.v69_:
  v70_: bool = const true;
  v38_: int = id v65_;
  v39_: bool = id v70_;
  v40_: int = id v67_;
  v41_: int = id v22_;
  jmp .v42_;
.v63_:
  v71_: bool = const true;
  v65_: int = id v20_;
  v66_: bool = id v71_;
  v67_: int = id v29_;
  v68_: int = id v22_;
  jmp .v69_;
.v26_:
  v72_: int = sub v21_ v20_;
  v28_: int = id v20_;
  v29_: int = id v72_;
  v30_: int = id v21_;
  v31_: bool = id v24_;
  v32_: int = id v22_;
  jmp .v33_;
.v18_:
  v73_: bool = const false;
  v47_: int = id v11_;
  v48_: int = id v12_;
  v49_: bool = id v73_;
  v50_: int = id v13_;
  v51_: int = id v14_;
  jmp .v52_;
.v9_:
  v74_: bool = const false;
  v56_: bool = id v74_;
  v57_: int = id v3_;
  v58_: int = id v4_;
  v59_: int = id v5_;
  jmp .v60_;
.v61_:
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions