linearscan-hoopl-0.6.0.0: test/Programs/Blocked.hs
module Programs.Blocked where
import Assembly
import LinearScan.Hoopl.DSL
regBlocked :: Program (Node IRVar)
regBlocked = do
label "entry" $ do
lc v23
add v64 v64 pr11
call 80
jump "L61"
label "L61" $ do
add v86 v39 v98
nop
add v77 v47 v60
add v71 v4 v5
move v57 v18
copy v20 v42
offp v20 pr19 v19
call 57
add pr31 v99 pr4
nop
nop
move pr5 v41
add v47 v57 v98
alloc (Just pr21) v28
branch v26 "L44" "L9"
label "L9" $ do
copy v9 v52
copy v42 v36
branch v24 "L74" "L52"
label "L52" $ do
jump "L60"
label "L74" $ do
copy pr14 v8
move v34 pr20
branch v92 "L51" "L50"
label "L50" $ do
jump "L39"
label "L51" $ do
jump "L5"
label "L5" $ do
alloc (Just v3) v79
move v81 v76
lc v55
call 21
lc v70
add v99 v20 v89
lc v5
move v72 pr12
offp v90 pr13 v0
lc v2
offlpi v78
branch pr21 "L29" "L49"
label "L49" $ do
jump "L60"
label "L60" $ do
lc v84
move pr30 v47
branch v0 "L33" "L18"
label "L18" $ do
call 22
jump "L35"
label "L35" $ do
copy v91 pr19
move v43 v91
branch v37 "L48" "L17"
label "L17" $ do
move v66 v27
jump "L10"
label "L10" $ do
add v9 pr11 pr29
branch v54 "L98" "L21"
label "L21" $ do
move pr14 pr14
copy v15 v43
move v79 v77
copy v4 v79
call 61
move pr13 v31
alloc (Just v59) v37
return_
label "L98" $ do
lc v25
return_
label "L33" $ do
add v35 pr3 v59
lc v42
branch v62 "L94" "L63"
label "L63" $ do
move pr23 v47
return_
label "L94" $ do
move v27 v74
call 87
add v48 pr2 v95
copy v11 v92
copy pr0 v35
lc pr25
copy v80 v59
add pr28 v96 pr17
move v92 v88
move v77 v92
jump "L40"
label "L40" $ do
branch v13 "L25" "L47"
label "L47" $ do
jump "L57"
label "L57" $ do
move v59 v3
alloc (Just v27) pr6
jump "L4"
label "L4" $ do
branch v59 "L12" "L46"
label "L46" $ do
jump "L48"
label "L48" $ do
jump "L61"
label "L12" $ do
branch v84 "L8" "L90"
label "L90" $ do
call 63
offp v71 v37 pr15
add v16 v91 v9
call 18
branch v100 "L53" "L15"
label "L15" $ do
nop
add pr24 v23 v73
jump "L66"
label "L66" $ do
branch v78 "L42" "L41"
label "L41" $ do
jump "L61"
label "L42" $ do
jump "L57"
label "L53" $ do
add v32 v3 pr16
jump "L87"
label "L87" $ do
return_
label "L8" $ do
move v67 v2
offlpi v85
lc v39
jump "L26"
label "L26" $ do
copy v58 v91
return_
label "L25" $ do
move v5 pr30
move pr12 v5
move v74 v19
copy pr1 v50
branch v31 "L71" "L40"
label "L71" $ do
branch v42 "L39" "L0"
label "L39" $ do
offlpi v7
branch v82 "L44" "L43"
label "L43" $ do
jump "L5"
label "L44" $ do
jump "L61"
label "L29" $ do
return_