cleaning up some code
This commit is contained in:
parent
97eb985a02
commit
30bd6103a6
|
@ -22,6 +22,7 @@ use {
|
|||
fmt::{self, Debug, Display, Write},
|
||||
format_args as fa, mem,
|
||||
ops::{self, Deref},
|
||||
usize,
|
||||
},
|
||||
hashbrown::hash_map,
|
||||
hbbytecode::DisasmError,
|
||||
|
@ -1051,14 +1052,15 @@ impl Nodes {
|
|||
&& self[target].inputs.len() == 4
|
||||
&& self[value].kind != Kind::Load
|
||||
&& self[store].kind == Kind::Stre
|
||||
&& self[store].lock_rc == 0
|
||||
&& self[store].inputs[2] == region
|
||||
{
|
||||
if self[store].inputs[1] == value {
|
||||
return Some(store);
|
||||
}
|
||||
|
||||
return Some(self.modify_input(store, 1, value));
|
||||
let mut inps = self[target].inputs.clone();
|
||||
inps[3] = self[store].inputs[3];
|
||||
return Some(self.new_node_nop(self[target].ty, Kind::Stre, inps));
|
||||
}
|
||||
}
|
||||
K::Load => {
|
||||
|
@ -3163,7 +3165,9 @@ impl<'a> Codegen<'a> {
|
|||
self.ci.scope.aclasses.iter_mut().zip(scope.aclasses.iter_mut())
|
||||
{
|
||||
if self.ci.nodes[scope_class.last_store.get()].is_lazy_phi(node) {
|
||||
if loop_class.last_store.get() != scope_class.last_store.get() {
|
||||
if loop_class.last_store.get() != scope_class.last_store.get()
|
||||
&& loop_class.last_store.get() != 0
|
||||
{
|
||||
scope_class.last_store.set(
|
||||
self.ci.nodes.modify_input(
|
||||
scope_class.last_store.get(),
|
||||
|
@ -3237,7 +3241,9 @@ impl<'a> Codegen<'a> {
|
|||
.zip(bres.aclasses.iter_mut())
|
||||
{
|
||||
if self.ci.nodes[scope_class.last_store.get()].is_lazy_phi(node) {
|
||||
if loop_class.last_store.get() != scope_class.last_store.get() {
|
||||
if loop_class.last_store.get() != scope_class.last_store.get()
|
||||
&& loop_class.last_store.get() != 0
|
||||
{
|
||||
scope_class.last_store.set(
|
||||
self.ci.nodes.modify_input(
|
||||
scope_class.last_store.get(),
|
||||
|
@ -3300,11 +3306,6 @@ impl<'a> Codegen<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
let mut orig_classes = vec![];
|
||||
for (i, aclass) in self.ci.scope.aclasses.iter_mut().enumerate() {
|
||||
self.ci.nodes.load_loop_aclass(i, aclass, &mut self.ci.loops);
|
||||
orig_classes.push(aclass.dup(&mut self.ci.nodes));
|
||||
}
|
||||
let else_scope = self.ci.scope.dup(&mut self.ci.nodes);
|
||||
|
||||
self.ci.ctrl.set(
|
||||
|
@ -3324,8 +3325,6 @@ impl<'a> Codegen<'a> {
|
|||
self.ci.ctrl.get()
|
||||
};
|
||||
|
||||
orig_classes.into_iter().for_each(|c| c.remove(&mut self.ci.nodes));
|
||||
|
||||
if lcntrl == Nid::MAX && rcntrl == Nid::MAX {
|
||||
then_scope.clear(&mut self.ci.nodes);
|
||||
return None;
|
||||
|
|
|
@ -2,31 +2,31 @@ main:
|
|||
ADDI64 r254, r254, -152d
|
||||
LI8 r1, 0b
|
||||
LI8 r3, 1b
|
||||
ST r1, r254, 132a, 1h
|
||||
ST r3, r254, 128a, 1h
|
||||
ST r1, r254, 133a, 1h
|
||||
ST r3, r254, 129a, 1h
|
||||
ST r1, r254, 134a, 1h
|
||||
ST r3, r254, 130a, 1h
|
||||
ST r1, r254, 135a, 1h
|
||||
ST r3, r254, 131a, 1h
|
||||
LD r1, r254, 132a, 1h
|
||||
LD r4, r254, 128a, 1h
|
||||
ST r1, r254, 116a, 1h
|
||||
ST r3, r254, 112a, 1h
|
||||
ST r1, r254, 117a, 1h
|
||||
ST r3, r254, 113a, 1h
|
||||
ST r1, r254, 118a, 1h
|
||||
ST r3, r254, 114a, 1h
|
||||
ST r1, r254, 119a, 1h
|
||||
ST r3, r254, 115a, 1h
|
||||
LD r1, r254, 116a, 1h
|
||||
LD r4, r254, 112a, 1h
|
||||
ADD8 r5, r4, r1
|
||||
LD r8, r254, 129a, 1h
|
||||
LD r9, r254, 133a, 1h
|
||||
ST r5, r254, 132a, 1h
|
||||
LD r8, r254, 113a, 1h
|
||||
LD r9, r254, 117a, 1h
|
||||
ST r5, r254, 116a, 1h
|
||||
ADD8 r12, r9, r8
|
||||
LD r4, r254, 130a, 1h
|
||||
LD r5, r254, 134a, 1h
|
||||
ST r12, r254, 133a, 1h
|
||||
LD r4, r254, 114a, 1h
|
||||
LD r5, r254, 118a, 1h
|
||||
ST r12, r254, 117a, 1h
|
||||
ADD8 r7, r5, r4
|
||||
ST r7, r254, 134a, 1h
|
||||
ST r3, r254, 135a, 1h
|
||||
LD r12, r254, 133a, 1h
|
||||
LD r1, r254, 134a, 1h
|
||||
ST r7, r254, 118a, 1h
|
||||
ST r3, r254, 119a, 1h
|
||||
LD r12, r254, 117a, 1h
|
||||
LD r1, r254, 118a, 1h
|
||||
ADD8 r4, r1, r12
|
||||
LD r5, r254, 132a, 1h
|
||||
LD r5, r254, 116a, 1h
|
||||
ADD8 r7, r5, r4
|
||||
LI8 r9, 4b
|
||||
ADD8 r1, r7, r3
|
||||
|
@ -36,61 +36,61 @@ main:
|
|||
LI64 r1, 1008d
|
||||
JMP :1
|
||||
0: LI64 r6, 1d
|
||||
ADDI64 r5, r254, 80d
|
||||
ST r6, r254, 80a, 8h
|
||||
ADDI64 r5, r254, 96d
|
||||
ST r6, r254, 96a, 8h
|
||||
LI64 r9, 2d
|
||||
ST r9, r254, 88a, 8h
|
||||
ST r9, r254, 104a, 8h
|
||||
LI64 r2, 3d
|
||||
ADDI64 r1, r254, 64d
|
||||
ST r2, r254, 48a, 8h
|
||||
ADDI64 r1, r254, 80d
|
||||
ST r2, r254, 32a, 8h
|
||||
LI64 r6, 4d
|
||||
LI64 r2, 0d
|
||||
BMC r5, r1, 16h
|
||||
ST r6, r254, 56a, 8h
|
||||
ST r2, r254, 0a, 8h
|
||||
LD r11, r254, 64a, 8h
|
||||
LD r1, r254, 48a, 8h
|
||||
ST r2, r254, 8a, 8h
|
||||
ST r6, r254, 40a, 8h
|
||||
ST r2, r254, 16a, 8h
|
||||
LD r11, r254, 80a, 8h
|
||||
LD r1, r254, 32a, 8h
|
||||
ST r2, r254, 24a, 8h
|
||||
ADD64 r4, r1, r11
|
||||
LD r7, r254, 72a, 8h
|
||||
LD r2, r254, 0a, 8h
|
||||
ST r4, r254, 96a, 8h
|
||||
LD r7, r254, 88a, 8h
|
||||
LD r2, r254, 16a, 8h
|
||||
ST r4, r254, 120a, 8h
|
||||
ADD64 r12, r7, r6
|
||||
SUB64 r3, r2, r1
|
||||
ADDI64 r8, r254, 16d
|
||||
ST r12, r254, 104a, 8h
|
||||
ADDI64 r8, r254, 48d
|
||||
ST r12, r254, 128a, 8h
|
||||
SUB64 r2, r1, r11
|
||||
ST r3, r254, 16a, 8h
|
||||
ST r3, r254, 48a, 8h
|
||||
LI64 r9, -4d
|
||||
ST r2, r254, 112a, 8h
|
||||
ST r2, r254, 136a, 8h
|
||||
SUB64 r7, r6, r7
|
||||
ST r9, r254, 24a, 8h
|
||||
ST r9, r254, 56a, 8h
|
||||
ADDI64 r8, r8, 16d
|
||||
ST r7, r254, 120a, 8h
|
||||
ST r7, r254, 144a, 8h
|
||||
BMC r5, r8, 16h
|
||||
LD r6, r254, 96a, 8h
|
||||
LD r8, r254, 16a, 8h
|
||||
LD r6, r254, 120a, 8h
|
||||
LD r8, r254, 48a, 8h
|
||||
ADD64 r9, r8, r6
|
||||
LD r11, r254, 24a, 8h
|
||||
LD r1, r254, 104a, 8h
|
||||
ST r9, r254, 16a, 8h
|
||||
LD r11, r254, 56a, 8h
|
||||
LD r1, r254, 128a, 8h
|
||||
ST r9, r254, 48a, 8h
|
||||
ADD64 r4, r1, r11
|
||||
LD r8, r254, 32a, 8h
|
||||
LD r9, r254, 112a, 8h
|
||||
ST r4, r254, 24a, 8h
|
||||
LD r8, r254, 64a, 8h
|
||||
LD r9, r254, 136a, 8h
|
||||
ST r4, r254, 56a, 8h
|
||||
ADD64 r12, r9, r8
|
||||
LD r2, r254, 40a, 8h
|
||||
ST r12, r254, 32a, 8h
|
||||
LD r2, r254, 72a, 8h
|
||||
ST r12, r254, 64a, 8h
|
||||
ADD64 r12, r2, r7
|
||||
ST r12, r254, 40a, 8h
|
||||
LD r7, r254, 16a, 8h
|
||||
LD r9, r254, 32a, 8h
|
||||
ST r12, r254, 72a, 8h
|
||||
LD r7, r254, 48a, 8h
|
||||
LD r9, r254, 64a, 8h
|
||||
ADD64 r11, r9, r7
|
||||
LD r1, r254, 24a, 8h
|
||||
ST r11, r254, 136a, 8h
|
||||
LD r1, r254, 56a, 8h
|
||||
ST r11, r254, 0a, 8h
|
||||
ADD64 r6, r1, r12
|
||||
ST r6, r254, 144a, 8h
|
||||
LD r7, r254, 136a, 8h
|
||||
ST r6, r254, 8a, 8h
|
||||
LD r7, r254, 0a, 8h
|
||||
ADD64 r1, r7, r6
|
||||
1: ADDI64 r254, r254, 152d
|
||||
JALA r0, r31, 0a
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
main:
|
||||
ADDI64 r254, r254, -10240d
|
||||
LI8 r6, 64b
|
||||
LI64 r7, 1d
|
||||
LI64 r6, 1d
|
||||
LI8 r7, 64b
|
||||
LI64 r8, 1024d
|
||||
LI64 r9, 0d
|
||||
ADDI64 r5, r254, 0d
|
||||
4: JLTU r9, r8, :0
|
||||
LI64 r4, 10d
|
||||
CP r6, r7
|
||||
3: JLTU r6, r4, :1
|
||||
CP r7, r6
|
||||
3: JLTU r7, r4, :1
|
||||
LD r10, r254, 2048a, 1h
|
||||
ANDI r1, r10, 255d
|
||||
JMP :2
|
||||
1: ADD64 r12, r6, r7
|
||||
MULI64 r1, r6, 1024d
|
||||
ADD64 r6, r5, r1
|
||||
BMC r5, r6, 1024h
|
||||
CP r6, r12
|
||||
1: ADD64 r12, r7, r6
|
||||
MULI64 r1, r7, 1024d
|
||||
ADD64 r7, r5, r1
|
||||
BMC r5, r7, 1024h
|
||||
CP r7, r12
|
||||
JMP :3
|
||||
0: ADD64 r1, r9, r7
|
||||
0: ADD64 r1, r9, r6
|
||||
ADD64 r10, r5, r9
|
||||
ST r6, r10, 0a, 1h
|
||||
ST r7, r10, 0a, 1h
|
||||
CP r9, r1
|
||||
JMP :4
|
||||
2: ADDI64 r254, r254, 10240d
|
||||
|
|
Loading…
Reference in a new issue