https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61577

--- Comment #51 from The Written Word <bugzilla-gcc at thewrittenword dot com> 
---
(In reply to dave.anglin from comment #50)
> On 2019-07-05 4:28 p.m., bugzilla-gcc at thewrittenword dot com wrote:
> > I am uploading hello.c, hello.s, and hello.c.313r.dfinish.
> I'm still puzzled why .LC0 ends up in .rodata.
> 
> (insn 30 2 34 2 (set (reg:DI 120 out0 [+-4 ])
>         (minus:DI (symbol_ref/f:SI ("*.LC0") [flags 0x2]  <var_decl 776633c8
> *.LC0>)
>             (reg:DI 1 r1))) "hello.c":5 108 {*gprel64_offset}
>      (nil))

This is a diff of the RTL between two gcc-8.3.0 versions, one with PR60465
reverted and one without:
--- without-PR60465/hello.c.313r.dfinish        2019-07-05 20:37:38 +0000
+++ with-PR60465/hello.c.313r.dfinish        2019-07-05 20:26:13 +0000
@@ -31,16 +31,16 @@
 (note 22 21 2 2 NOTE_INSN_PROLOGUE_END)
 (note 2 22 30 2 NOTE_INSN_FUNCTION_BEG)
 (insn 30 2 34 2 (set (reg:DI 120 out0 [+-4 ])
-        (plus:DI (high:DI (symbol_ref/f:SI ("*.LC0") [flags 0x2]  <var_decl
776633c8 *.LC0>))
-            (reg:DI 1 r1))) "hello.c":5 110 {*load_symptr_high}
+        (minus:DI (symbol_ref/f:SI ("*.LC0") [flags 0x2]  <var_decl 776633c8
*.LC0>)
+            (reg:DI 1 r1))) "hello.c":5 108 {*gprel64_offset}
      (nil))
 (insn 34 30 31 2 (unspec_volatile [
             (const_int 3 [0x3])
         ] UNSPECV_INSN_GROUP_BARRIER) "hello.c":5 364 {insn_group_barrier}
      (nil))
 (insn 31 34 32 2 (set (reg:DI 120 out0 [+-4 ])
-        (lo_sum:DI (mem/u/c:DI (reg:DI 120 out0 [+-4 ]) [0  S8 A64])
-            (symbol_ref/f:SI ("*.LC0") [flags 0x2]  <var_decl 776633c8
*.LC0>))) "hello.c":5 111 {*load_symptr_low}
+        (plus:DI (reg:DI 1 r1)
+            (reg:DI 120 out0 [+-4 ]))) "hello.c":5 206 {adddi3}
      (nil))
 (call_insn 32 31 33 2 (parallel [
             (set (reg:SI 8 r8)

Reply via email to