Lines Matching refs:layout
320 layout: self, in blocks()
373 layout: &'f Layout, field
383 self.next = self.layout.next_block(block); in next()
513 layout: self, in block_insts()
620 layout: &'f Layout, field
635 self.head = self.layout.insts[inst].next.into(); in next()
650 self.tail = self.layout.insts[inst].prev.into(); in next_back()
727 let mut layout = Layout::new(); in visit_seq() localVariable
730 layout.append_block(block); in visit_seq()
735 layout.blocks[block].cold = cold; in visit_seq()
745 layout.append_inst(inst, block); in visit_seq()
749 Ok(layout) in visit_seq()
777 pub layout: &'f mut Layout, field
798 fn layout(&self) -> &Layout { in layout() method
799 self.layout in layout()
803 self.layout in layout_mut()
810 pub fn new(layout: &'f mut Layout) -> Self { in new()
812 layout, in new()
818 fn verify(layout: &mut Layout, blocks: &[(Block, &[Inst])]) { in verify()
823 let mut block_iter = layout.blocks(); in verify()
825 assert!(layout.is_block_inserted(block)); in verify()
829 let mut inst_iter = layout.block_insts(block); in verify()
831 assert_eq!(layout.inst_block(inst), Some(block)); in verify()
833 assert!(layout.insts[inst].seq > seq); in verify()
834 seq = layout.insts[inst].seq; in verify()
842 let mut cur = LayoutCursor::new(layout); in verify()
855 let mut layout = Layout::new(); in append_block() localVariable
861 let imm = &layout; in append_block()
865 verify(&mut layout, &[]); in append_block()
867 layout.append_block(e1); in append_block()
868 assert!(!layout.is_block_inserted(e0)); in append_block()
869 assert!(layout.is_block_inserted(e1)); in append_block()
870 assert!(!layout.is_block_inserted(e2)); in append_block()
871 let v: Vec<Block> = layout.blocks().collect(); in append_block()
874 layout.append_block(e2); in append_block()
875 assert!(!layout.is_block_inserted(e0)); in append_block()
876 assert!(layout.is_block_inserted(e1)); in append_block()
877 assert!(layout.is_block_inserted(e2)); in append_block()
878 let v: Vec<Block> = layout.blocks().collect(); in append_block()
881 layout.append_block(e0); in append_block()
882 assert!(layout.is_block_inserted(e0)); in append_block()
883 assert!(layout.is_block_inserted(e1)); in append_block()
884 assert!(layout.is_block_inserted(e2)); in append_block()
885 let v: Vec<Block> = layout.blocks().collect(); in append_block()
889 let imm = &layout; in append_block()
898 let mut cur = LayoutCursor::new(&mut layout); in append_block()
929 let mut layout = Layout::new(); in insert_block() localVariable
935 let imm = &layout; in insert_block()
939 let v: Vec<Block> = layout.blocks().collect(); in insert_block()
943 layout.append_block(e1); in insert_block()
944 assert!(!layout.is_block_inserted(e0)); in insert_block()
945 assert!(layout.is_block_inserted(e1)); in insert_block()
946 assert!(!layout.is_block_inserted(e2)); in insert_block()
947 verify(&mut layout, &[(e1, &[])]); in insert_block()
949 layout.insert_block(e2, e1); in insert_block()
950 assert!(!layout.is_block_inserted(e0)); in insert_block()
951 assert!(layout.is_block_inserted(e1)); in insert_block()
952 assert!(layout.is_block_inserted(e2)); in insert_block()
953 verify(&mut layout, &[(e2, &[]), (e1, &[])]); in insert_block()
955 layout.insert_block(e0, e1); in insert_block()
956 assert!(layout.is_block_inserted(e0)); in insert_block()
957 assert!(layout.is_block_inserted(e1)); in insert_block()
958 assert!(layout.is_block_inserted(e2)); in insert_block()
959 verify(&mut layout, &[(e2, &[]), (e0, &[]), (e1, &[])]); in insert_block()
964 let mut layout = Layout::new(); in insert_block_after() localVariable
969 layout.append_block(e1); in insert_block_after()
970 layout.insert_block_after(e2, e1); in insert_block_after()
971 verify(&mut layout, &[(e1, &[]), (e2, &[])]); in insert_block_after()
973 layout.insert_block_after(e0, e1); in insert_block_after()
974 verify(&mut layout, &[(e1, &[]), (e0, &[]), (e2, &[])]); in insert_block_after()
979 let mut layout = Layout::new(); in append_inst() localVariable
982 layout.append_block(e1); in append_inst()
983 let v: Vec<Inst> = layout.block_insts(e1).collect(); in append_inst()
990 assert_eq!(layout.inst_block(i0), None); in append_inst()
991 assert_eq!(layout.inst_block(i1), None); in append_inst()
992 assert_eq!(layout.inst_block(i2), None); in append_inst()
994 layout.append_inst(i1, e1); in append_inst()
995 assert_eq!(layout.inst_block(i0), None); in append_inst()
996 assert_eq!(layout.inst_block(i1), Some(e1)); in append_inst()
997 assert_eq!(layout.inst_block(i2), None); in append_inst()
998 let v: Vec<Inst> = layout.block_insts(e1).collect(); in append_inst()
1001 layout.append_inst(i2, e1); in append_inst()
1002 assert_eq!(layout.inst_block(i0), None); in append_inst()
1003 assert_eq!(layout.inst_block(i1), Some(e1)); in append_inst()
1004 assert_eq!(layout.inst_block(i2), Some(e1)); in append_inst()
1005 let v: Vec<Inst> = layout.block_insts(e1).collect(); in append_inst()
1009 let v: Vec<Inst> = layout.block_insts(e1).rev().collect(); in append_inst()
1012 layout.append_inst(i0, e1); in append_inst()
1013 verify(&mut layout, &[(e1, &[i1, i2, i0])]); in append_inst()
1016 let mut cur = LayoutCursor::new(&mut layout).at_top(e1); in append_inst()
1041 verify(cur.layout, &[(e1, &[i1, i0])]); in append_inst()
1042 assert_eq!(cur.layout.inst_block(i2), None); in append_inst()
1044 verify(cur.layout, &[(e1, &[i1])]); in append_inst()
1045 assert_eq!(cur.layout.inst_block(i0), None); in append_inst()
1047 cur.layout.remove_inst(i1); in append_inst()
1048 verify(cur.layout, &[(e1, &[])]); in append_inst()
1049 assert_eq!(cur.layout.inst_block(i1), None); in append_inst()
1054 let mut layout = Layout::new(); in insert_inst() localVariable
1057 layout.append_block(e1); in insert_inst()
1058 let v: Vec<Inst> = layout.block_insts(e1).collect(); in insert_inst()
1065 assert_eq!(layout.inst_block(i0), None); in insert_inst()
1066 assert_eq!(layout.inst_block(i1), None); in insert_inst()
1067 assert_eq!(layout.inst_block(i2), None); in insert_inst()
1069 layout.append_inst(i1, e1); in insert_inst()
1070 assert_eq!(layout.inst_block(i0), None); in insert_inst()
1071 assert_eq!(layout.inst_block(i1), Some(e1)); in insert_inst()
1072 assert_eq!(layout.inst_block(i2), None); in insert_inst()
1073 let v: Vec<Inst> = layout.block_insts(e1).collect(); in insert_inst()
1076 layout.insert_inst(i2, i1); in insert_inst()
1077 assert_eq!(layout.inst_block(i0), None); in insert_inst()
1078 assert_eq!(layout.inst_block(i1), Some(e1)); in insert_inst()
1079 assert_eq!(layout.inst_block(i2), Some(e1)); in insert_inst()
1080 let v: Vec<Inst> = layout.block_insts(e1).collect(); in insert_inst()
1083 layout.insert_inst(i0, i1); in insert_inst()
1084 verify(&mut layout, &[(e1, &[i2, i0, i1])]); in insert_inst()
1089 let mut layout = Layout::new(); in multiple_blocks() localVariable
1094 assert_eq!(layout.entry_block(), None); in multiple_blocks()
1095 layout.append_block(e0); in multiple_blocks()
1096 assert_eq!(layout.entry_block(), Some(e0)); in multiple_blocks()
1097 layout.append_block(e1); in multiple_blocks()
1098 assert_eq!(layout.entry_block(), Some(e0)); in multiple_blocks()
1105 layout.append_inst(i0, e0); in multiple_blocks()
1106 layout.append_inst(i1, e0); in multiple_blocks()
1107 layout.append_inst(i2, e1); in multiple_blocks()
1108 layout.append_inst(i3, e1); in multiple_blocks()
1110 let v0: Vec<Inst> = layout.block_insts(e0).collect(); in multiple_blocks()
1111 let v1: Vec<Inst> = layout.block_insts(e1).collect(); in multiple_blocks()
1118 let mut layout = Layout::new(); in split_block() localVariable
1129 layout.append_block(e0); in split_block()
1130 layout.append_inst(i0, e0); in split_block()
1131 assert_eq!(layout.inst_block(i0), Some(e0)); in split_block()
1132 layout.split_block(e1, i0); in split_block()
1133 assert_eq!(layout.inst_block(i0), Some(e1)); in split_block()
1136 let mut cur = LayoutCursor::new(&mut layout); in split_block()
1153 layout.append_inst(i1, e0); in split_block()
1154 layout.append_inst(i2, e0); in split_block()
1155 layout.append_inst(i3, e0); in split_block()
1156 layout.split_block(e2, i2); in split_block()
1158 assert_eq!(layout.inst_block(i0), Some(e1)); in split_block()
1159 assert_eq!(layout.inst_block(i1), Some(e0)); in split_block()
1160 assert_eq!(layout.inst_block(i2), Some(e2)); in split_block()
1161 assert_eq!(layout.inst_block(i3), Some(e2)); in split_block()
1164 let mut cur = LayoutCursor::new(&mut layout); in split_block()
1191 assert_eq!(layout.pp_cmp(e2, e2), Ordering::Equal); in split_block()
1192 assert_eq!(layout.pp_cmp(e2, i2), Ordering::Less); in split_block()
1193 assert_eq!(layout.pp_cmp(i3, i2), Ordering::Greater) in split_block()