brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.8 KiB · 5a14ccb Raw
290 lines · plain
1# RUN: llc -mtriple=mipsel-unknown-linux-gnu -mattr=+micromips -mcpu=mips32r2 \2# RUN:     -verify-machineinstrs -run-pass micromips-reduce-size \3# RUN:      %s -o - | FileCheck %s4 5--- |6  define void @f1(ptr %adr, i32 %val) { ret void }7  define void @f2(ptr %adr, i32 %val) { ret void }8  define void @f3(ptr %adr, i32 %val) { ret void }9  define void @f4(ptr %adr, i32 %val) { ret void }10 11  declare ptr @f()12 13  ; Function Attrs: nounwind14  declare void @llvm.stackprotector(ptr, ptr)15 16...17---18# CHECK-LABEL: name: f119# CHECK: SWP_MM20# CHECK: LWP_MM21name:            f122alignment:       423exposesReturnsTwice: false24legalized:       false25regBankSelected: false26selected:        false27tracksRegLiveness: true28registers:29liveins:30  - { reg: '$a0', virtual-reg: '' }31  - { reg: '$a1', virtual-reg: '' }32frameInfo:33  isFrameAddressTaken: false34  isReturnAddressTaken: false35  hasStackMap:     false36  hasPatchPoint:   false37  stackSize:       3238  offsetAdjustment: 039  maxAlignment:    440  adjustsStack:    true41  hasCalls:        true42  stackProtector:  ''43  maxCallFrameSize: 1644  hasOpaqueSPAdjustment: false45  hasVAStart:      false46  hasMustTailInVarArgFunc: false47  savePoint:       []48  restorePoint:    []49fixedStack:50stack:51  - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,52      stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,53      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }54  - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,55      stack-id: default, callee-saved-register: '$s1', callee-saved-restored: true,56      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }57  - { id: 2, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4,58      stack-id: default, callee-saved-register: '$s0', callee-saved-restored: true,59      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }60constants:61body:             |62  bb.0:63    liveins: $a0, $a1, $ra, $s1, $s064 65    $sp = ADDiu $sp, -3266    CFI_INSTRUCTION def_cfa_offset 3267    SW killed $ra, $sp, 28 :: (store (s32) into %stack.0)68    SW killed $s1, $sp, 24 :: (store (s32) into %stack.1)69    SW killed $s0, $sp, 20 :: (store (s32) into %stack.2)70    CFI_INSTRUCTION offset $ra_64, -471    CFI_INSTRUCTION offset $s1_64, -872    CFI_INSTRUCTION offset $s0_64, -1273    $s1 = MOVE16_MM $a174    $s0 = MOVE16_MM $a075    JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def dead $v076    SW16_MM killed renamable $s1, killed renamable $s0, 0 :: (store (s32) into %ir.adr)77    $v0 = LI16_MM 078    $s0 = LW $sp, 20 :: (load (s32) from %stack.2)79    $s1 = LW $sp, 24 :: (load (s32) from %stack.1)80    $ra = LW $sp, 28 :: (load (s32) from %stack.0)81    $sp = ADDiu $sp, 3282    PseudoReturn undef $ra, implicit killed $v083 84...85---86# CHECK-LABEL: name: f287# CHECK: SWP_MM88# CHECK: LWP_MM89name:            f290alignment:       491exposesReturnsTwice: false92legalized:       false93regBankSelected: false94selected:        false95tracksRegLiveness: true96registers:97liveins:98  - { reg: '$a0', virtual-reg: '' }99  - { reg: '$a1', virtual-reg: '' }100frameInfo:101  isFrameAddressTaken: false102  isReturnAddressTaken: false103  hasStackMap:     false104  hasPatchPoint:   false105  stackSize:       32106  offsetAdjustment: 0107  maxAlignment:    4108  adjustsStack:    true109  hasCalls:        true110  stackProtector:  ''111  maxCallFrameSize: 16112  hasOpaqueSPAdjustment: false113  hasVAStart:      false114  hasMustTailInVarArgFunc: false115  savePoint:       []116  restorePoint:    []117fixedStack:118stack:119  - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,120      stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,121      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }122  - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,123      stack-id: default, callee-saved-register: '$s1', callee-saved-restored: true,124      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }125  - { id: 2, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4,126      stack-id: default, callee-saved-register: '$s0', callee-saved-restored: true,127      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }128constants:129body:             |130  bb.0:131    liveins: $a0, $a1, $ra, $s1, $s0132 133    $sp = ADDiu $sp, -32134    CFI_INSTRUCTION def_cfa_offset 32135    SW killed $ra, $sp, 28 :: (store (s32) into %stack.0)136    SW_MM killed $s1, $sp, 24 :: (store (s32) into %stack.1)137    SW_MM killed $s0, $sp, 20 :: (store (s32) into %stack.2)138    CFI_INSTRUCTION offset $ra_64, -4139    CFI_INSTRUCTION offset $s1_64, -8140    CFI_INSTRUCTION offset $s0_64, -12141    $s1 = MOVE16_MM $a1142    $s0 = MOVE16_MM $a0143    JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def dead $v0144    SW16_MM killed renamable $s1, killed renamable $s0, 0 :: (store (s32) into %ir.adr)145    $v0 = LI16_MM 0146    $s0 = LW_MM $sp, 20 :: (load (s32) from %stack.2)147    $s1 = LW_MM $sp, 24 :: (load (s32) from %stack.1)148    $ra = LW $sp, 28 :: (load (s32) from %stack.0)149    $sp = ADDiu $sp, 32150    PseudoReturn undef $ra, implicit killed $v0151 152...153---154# CHECK-LABEL: name: f3155# CHECK: SWP_MM156# CHECK: LWP_MM157name:            f3158alignment:       4159exposesReturnsTwice: false160legalized:       false161regBankSelected: false162selected:        false163tracksRegLiveness: true164registers:165liveins:166  - { reg: '$a0', virtual-reg: '' }167  - { reg: '$a1', virtual-reg: '' }168frameInfo:169  isFrameAddressTaken: false170  isReturnAddressTaken: false171  hasStackMap:     false172  hasPatchPoint:   false173  stackSize:       32174  offsetAdjustment: 0175  maxAlignment:    4176  adjustsStack:    true177  hasCalls:        true178  stackProtector:  ''179  maxCallFrameSize: 16180  hasOpaqueSPAdjustment: false181  hasVAStart:      false182  hasMustTailInVarArgFunc: false183  savePoint:       []184  restorePoint:    []185fixedStack:186stack:187  - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,188      stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,189      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }190  - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,191      stack-id: default, callee-saved-register: '$s1', callee-saved-restored: true,192      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }193  - { id: 2, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4,194      stack-id: default, callee-saved-register: '$s0', callee-saved-restored: true,195      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }196constants:197body:             |198  bb.0:199    liveins: $a0, $a1, $ra, $s1, $s0200 201    $sp = ADDiu $sp, -32202    CFI_INSTRUCTION def_cfa_offset 32203    SW killed $ra, $sp, 28 :: (store (s32) into %stack.0)204    SW_MM killed $s1, $sp, 24 :: (store (s32) into %stack.1)205    SW killed $s0, $sp, 20 :: (store (s32) into %stack.2)206    CFI_INSTRUCTION offset $ra_64, -4207    CFI_INSTRUCTION offset $s1_64, -8208    CFI_INSTRUCTION offset $s0_64, -12209    $s1 = MOVE16_MM $a1210    $s0 = MOVE16_MM $a0211    JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def dead $v0212    SW16_MM killed renamable $s1, killed renamable $s0, 0 :: (store (s32) into %ir.adr)213    $v0 = LI16_MM 0214    $s0 = LW_MM $sp, 20 :: (load (s32) from %stack.2)215    $s1 = LW $sp, 24 :: (load (s32) from %stack.1)216    $ra = LW $sp, 28 :: (load (s32) from %stack.0)217    $sp = ADDiu $sp, 32218    PseudoReturn undef $ra, implicit killed $v0219 220...221---222# CHECK-LABEL: name: f4223# CHECK: SWP_MM224# CHECK: LWP_MM225name:            f4226alignment:       4227exposesReturnsTwice: false228legalized:       false229regBankSelected: false230selected:        false231tracksRegLiveness: true232registers:233liveins:234  - { reg: '$a0', virtual-reg: '' }235  - { reg: '$a1', virtual-reg: '' }236frameInfo:237  isFrameAddressTaken: false238  isReturnAddressTaken: false239  hasStackMap:     false240  hasPatchPoint:   false241  stackSize:       32242  offsetAdjustment: 0243  maxAlignment:    4244  adjustsStack:    true245  hasCalls:        true246  stackProtector:  ''247  maxCallFrameSize: 16248  hasOpaqueSPAdjustment: false249  hasVAStart:      false250  hasMustTailInVarArgFunc: false251  savePoint:       []252  restorePoint:    []253fixedStack:254stack:255  - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,256      stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,257      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }258  - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,259      stack-id: default, callee-saved-register: '$s1', callee-saved-restored: true,260      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }261  - { id: 2, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4,262      stack-id: default, callee-saved-register: '$s0', callee-saved-restored: true,263      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }264constants:265body:             |266  bb.0:267    liveins: $a0, $a1, $ra, $s1, $s0268 269    $sp = ADDiu $sp, -32270    CFI_INSTRUCTION def_cfa_offset 32271    SW killed $ra, $sp, 28 :: (store (s32) into %stack.0)272    SW killed $s1, $sp, 24 :: (store (s32) into %stack.1)273    SW_MM killed $s0, $sp, 20 :: (store (s32) into %stack.2)274    CFI_INSTRUCTION offset $ra_64, -4275    CFI_INSTRUCTION offset $s1_64, -8276    CFI_INSTRUCTION offset $s0_64, -12277    $s1 = MOVE16_MM $a1278    $s0 = MOVE16_MM $a0279    JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def dead $v0280    SW16_MM killed renamable $s1, killed renamable $s0, 0 :: (store (s32) into %ir.adr)281    $v0 = LI16_MM 0282    $s0 = LW $sp, 20 :: (load (s32) from %stack.2)283    $s1 = LW_MM $sp, 24 :: (load (s32) from %stack.1)284    $ra = LW $sp, 28 :: (load (s32) from %stack.0)285    $sp = ADDiu $sp, 32286    PseudoReturn undef $ra, implicit killed $v0287 288...289 290