search for: ps_jmpret

Displaying 4 results from an estimated 4 matches for "ps_jmpret".

2017 Jul 27
2
Tail merging "undef" with a defined register: wrong code
...bad. If you add -run-pass if-converter, you'll get: # After If Converter # Machine code for function fred: IsSSA, NoPHIs, TracksLiveness, NoVRegs BB#0: %R0<def> = L2_ploadruhf_io %P0<undef>, %R0<undef>, 0, %R0<imp-use> PS_storerhabs 0, %R0 PS_jmpret %R31<kill>, %PC<imp-def> # End machine code for function fred. *** Bad machine code: Using an undefined physical register *** - function: fred - basic block: BB#0 (0x411e8e8) - instruction: %R0<def> = L2_ploadruhf_io - operand 4: %R0<imp-use> LLVM ERROR: Found 1 mach...
2017 Jul 27
2
Tail merging "undef" with a defined register: wrong code
..._jump %bb.1, implicit-def %pc bb.1: successors: %bb.3 %r0 = L2_loadruh_io undef %r0, 0 PS_storerhabs 0, killed %r0 J2_jump %bb.3, implicit-def %pc bb.2: successors: %bb.3 PS_storerhabs 0, undef %r0 J2_jump %bb.3, implicit-def %pc bb.3: PS_jmpret killed %r31, implicit-def %pc ... Run: llc -march=hexagon -run-pass branch-folder test.mir -o - We get an invalid code: body: | bb.0: successors: %bb.1(0x40000000), %bb.2(0x40000000) J2_jumpt undef %p0, %bb.2, implicit-def %pc bb.1: successors: %bb.2(0x80000000) %r0...
2017 Jul 28
2
Tail merging "undef" with a defined register: wrong code
..._jump %bb.1, implicit-def %pc bb.1: successors: %bb.3 %r0 = L2_loadruh_io undef %r0, 0 PS_storerhabs 0, killed %r0 J2_jump %bb.3, implicit-def %pc bb.2: successors: %bb.3 PS_storerhabs 0, undef %r0 J2_jump %bb.3, implicit-def %pc bb.3: PS_jmpret killed %r31, implicit-def %pc ... If the merging process produced this intermediate code (I stripped some unimportant pieces): bb.1: %r0 = L2_loadruh_io undef %r0, 0 J2_jump %bb.tail bb.2: J2_jump %bb.tail bb.tail: liveins: %r0 PS_storerhabs 0, killed...
2017 Jul 28
2
Tail merging "undef" with a defined register: wrong code
...oadruh_io undef %r0, 0 >> PS_storerhabs 0, killed %r0 >> J2_jump %bb.3, implicit-def %pc >> >> bb.2: >> successors: %bb.3 >> PS_storerhabs 0, undef %r0 >> J2_jump %bb.3, implicit-def %pc >> >> bb.3: >> PS_jmpret killed %r31, implicit-def %pc >> ... >> >> >> If the merging process produced this intermediate code (I stripped some unimportant pieces): >> >> bb.1: >> %r0 = L2_loadruh_io undef %r0, 0 >> J2_jump %bb.tail >> >> bb.2: >...