* [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
@ 2014-10-20 17:42 Sriraman Tallam
2014-10-20 17:46 ` Xinliang David Li
0 siblings, 1 reply; 10+ messages in thread
From: Sriraman Tallam @ 2014-10-20 17:42 UTC (permalink / raw)
To: GCC Patches, David Li; +Cc: Jan Hubicka, Cary Coutant, Paul Pluzhnikov
[-- Attachment #1: Type: text/plain, Size: 266 bytes --]
Hi,
This patch is under review for trunk GCC :
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
In the mean time, is this ok for google/gcc-4_9 branch? Without
this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
boundary.
Thanks
Sri
[-- Attachment #2: pr63538.txt --]
[-- Type: text/plain, Size: 1179 bytes --]
Index: testsuite/gcc.dg/pr63538.c
===================================================================
--- testsuite/gcc.dg/pr63538.c (revision 0)
+++ testsuite/gcc.dg/pr63538.c (revision 0)
@@ -0,0 +1,14 @@
+/* PR63538 is about not using 64-bit addresses for .lrodata accesses when it
+ involves STRING_CSTs. */
+/* { dg-do compile { target x86_64-*-* } } */
+/* { dg-options "-O2 -mcmodel=medium -mlarge-data-threshold=0" { target x86_64-*-* } } */
+
+#include <stdio.h>
+
+const char *str = "Hello World";
+
+int main() {
+ printf("str = %p %s\n",str, str);
+ return 0;
+}
+/* { dg-final { scan-assembler-not "movl" } } */
Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c (revision 216287)
+++ config/i386/i386.c (working copy)
@@ -41331,8 +41331,7 @@ ix86_encode_section_info (tree decl, rtx rtl, int
{
default_encode_section_info (decl, rtl, first);
- if (TREE_CODE (decl) == VAR_DECL
- && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))
+ if ((TREE_STATIC (decl) || DECL_EXTERNAL (decl))
&& ix86_in_large_data_p (decl))
SYMBOL_REF_FLAGS (XEXP (rtl, 0)) |= SYMBOL_FLAG_FAR_ADDR;
}
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
2014-10-20 17:42 [Google/gcc-4_9][PATCH][target/x86_64] PR 63538 Sriraman Tallam
@ 2014-10-20 17:46 ` Xinliang David Li
2014-10-20 17:51 ` Sriraman Tallam
0 siblings, 1 reply; 10+ messages in thread
From: Xinliang David Li @ 2014-10-20 17:46 UTC (permalink / raw)
To: Sriraman Tallam; +Cc: GCC Patches, Jan Hubicka, Cary Coutant, Paul Pluzhnikov
Why removing the tree_code check?
David
On Mon, Oct 20, 2014 at 10:35 AM, Sriraman Tallam <tmsriram@google.com> wrote:
> Hi,
>
> This patch is under review for trunk GCC :
> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
>
> In the mean time, is this ok for google/gcc-4_9 branch? Without
> this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
> boundary.
>
> Thanks
> Sri
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
2014-10-20 17:46 ` Xinliang David Li
@ 2014-10-20 17:51 ` Sriraman Tallam
2014-10-20 17:58 ` Andrew Pinski
2014-10-20 18:05 ` Xinliang David Li
0 siblings, 2 replies; 10+ messages in thread
From: Sriraman Tallam @ 2014-10-20 17:51 UTC (permalink / raw)
To: Xinliang David Li; +Cc: GCC Patches, Jan Hubicka, Cary Coutant, Paul Pluzhnikov
On Mon, Oct 20, 2014 at 10:42 AM, Xinliang David Li <davidxl@google.com> wrote:
> Why removing the tree_code check?
The actual problem happens because STRING_CSTs (end up in .lrodata)
are not set a far address as they dont match the VAR_DECL check here.
Futher, "ix86_in_large_data_p" call has the TREE_CODE check to do the
right thing so this seems unnecessary & buggy here.
Thanks
Sri
>
> David
>
> On Mon, Oct 20, 2014 at 10:35 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>> Hi,
>>
>> This patch is under review for trunk GCC :
>> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
>>
>> In the mean time, is this ok for google/gcc-4_9 branch? Without
>> this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
>> boundary.
>>
>> Thanks
>> Sri
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
2014-10-20 17:51 ` Sriraman Tallam
@ 2014-10-20 17:58 ` Andrew Pinski
2014-10-20 19:09 ` Sriraman Tallam
2014-10-20 18:05 ` Xinliang David Li
1 sibling, 1 reply; 10+ messages in thread
From: Andrew Pinski @ 2014-10-20 17:58 UTC (permalink / raw)
To: Sriraman Tallam
Cc: Xinliang David Li, GCC Patches, Jan Hubicka, Cary Coutant,
Paul Pluzhnikov
On Mon, Oct 20, 2014 at 10:46 AM, Sriraman Tallam <tmsriram@google.com> wrote:
> On Mon, Oct 20, 2014 at 10:42 AM, Xinliang David Li <davidxl@google.com> wrote:
>> Why removing the tree_code check?
>
> The actual problem happens because STRING_CSTs (end up in .lrodata)
> are not set a far address as they dont match the VAR_DECL check here.
> Futher, "ix86_in_large_data_p" call has the TREE_CODE check to do the
> right thing so this seems unnecessary & buggy here.
I think he is asking because TREE_STATIC (decl) || DECL_EXTERNAL
(decl) might be an issue for STRING_CSTs.
Thanks,
Andrew
>
> Thanks
> Sri
>
>>
>> David
>>
>> On Mon, Oct 20, 2014 at 10:35 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>> Hi,
>>>
>>> This patch is under review for trunk GCC :
>>> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
>>>
>>> In the mean time, is this ok for google/gcc-4_9 branch? Without
>>> this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
>>> boundary.
>>>
>>> Thanks
>>> Sri
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
2014-10-20 17:51 ` Sriraman Tallam
2014-10-20 17:58 ` Andrew Pinski
@ 2014-10-20 18:05 ` Xinliang David Li
2014-10-20 18:59 ` Sriraman Tallam
1 sibling, 1 reply; 10+ messages in thread
From: Xinliang David Li @ 2014-10-20 18:05 UTC (permalink / raw)
To: Sriraman Tallam; +Cc: GCC Patches, Jan Hubicka, Cary Coutant, Paul Pluzhnikov
Perhaps explicitly allowing STRING_CST to go through the large data
check, instead of removing the var-decl check? Do you see other
opcodes that need to be handled too?
David
On Mon, Oct 20, 2014 at 10:46 AM, Sriraman Tallam <tmsriram@google.com> wrote:
> On Mon, Oct 20, 2014 at 10:42 AM, Xinliang David Li <davidxl@google.com> wrote:
>> Why removing the tree_code check?
>
> The actual problem happens because STRING_CSTs (end up in .lrodata)
> are not set a far address as they dont match the VAR_DECL check here.
> Futher, "ix86_in_large_data_p" call has the TREE_CODE check to do the
> right thing so this seems unnecessary & buggy here.
>
> Thanks
> Sri
>
>>
>> David
>>
>> On Mon, Oct 20, 2014 at 10:35 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>> Hi,
>>>
>>> This patch is under review for trunk GCC :
>>> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
>>>
>>> In the mean time, is this ok for google/gcc-4_9 branch? Without
>>> this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
>>> boundary.
>>>
>>> Thanks
>>> Sri
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
2014-10-20 18:05 ` Xinliang David Li
@ 2014-10-20 18:59 ` Sriraman Tallam
0 siblings, 0 replies; 10+ messages in thread
From: Sriraman Tallam @ 2014-10-20 18:59 UTC (permalink / raw)
To: Xinliang David Li; +Cc: GCC Patches, Jan Hubicka, Cary Coutant, Paul Pluzhnikov
[-- Attachment #1: Type: text/plain, Size: 1696 bytes --]
On Mon, Oct 20, 2014 at 10:59 AM, Xinliang David Li <davidxl@google.com> wrote:
> Perhaps explicitly allowing STRING_CST to go through the large data
> check, instead of removing the var-decl check? Do you see other
> opcodes that need to be handled too?
I do not see any other opcodes explicitly but the code in
ix86_in_large_data_p seemingly handles all opcodes other than
FUNCTION_DECL through:
if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp))
{
<blah>
}
else {
<blah>
}
However, I have modified the patch to explicitly check for STRING_CST
and I cannot think of any other case where the constant goes into
rodata but is not accessed via a VAR_DECL. Also note that TREE_STATIC
(decl) is true for STRING_CST.
Thanks
Sri
>
> David
>
> On Mon, Oct 20, 2014 at 10:46 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>> On Mon, Oct 20, 2014 at 10:42 AM, Xinliang David Li <davidxl@google.com> wrote:
>>> Why removing the tree_code check?
>>
>> The actual problem happens because STRING_CSTs (end up in .lrodata)
>> are not set a far address as they dont match the VAR_DECL check here.
>> Futher, "ix86_in_large_data_p" call has the TREE_CODE check to do the
>> right thing so this seems unnecessary & buggy here.
>>
>> Thanks
>> Sri
>>
>>>
>>> David
>>>
>>> On Mon, Oct 20, 2014 at 10:35 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>>> Hi,
>>>>
>>>> This patch is under review for trunk GCC :
>>>> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
>>>>
>>>> In the mean time, is this ok for google/gcc-4_9 branch? Without
>>>> this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
>>>> boundary.
>>>>
>>>> Thanks
>>>> Sri
[-- Attachment #2: pr63538.txt --]
[-- Type: text/plain, Size: 1196 bytes --]
Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c (revision 216287)
+++ config/i386/i386.c (working copy)
@@ -41331,7 +41331,7 @@ ix86_encode_section_info (tree decl, rtx rtl, int
{
default_encode_section_info (decl, rtl, first);
- if (TREE_CODE (decl) == VAR_DECL
+ if ((TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == STRING_CST)
&& (TREE_STATIC (decl) || DECL_EXTERNAL (decl))
&& ix86_in_large_data_p (decl))
SYMBOL_REF_FLAGS (XEXP (rtl, 0)) |= SYMBOL_FLAG_FAR_ADDR;
Index: testsuite/gcc.dg/pr63538.c
===================================================================
--- testsuite/gcc.dg/pr63538.c (revision 0)
+++ testsuite/gcc.dg/pr63538.c (revision 0)
@@ -0,0 +1,14 @@
+/* PR63538 is about not using 64-bit addresses for .lrodata accesses when it
+ involves STRING_CSTs. */
+/* { dg-do compile { target x86_64-*-* } } */
+/* { dg-options "-O2 -mcmodel=medium -mlarge-data-threshold=0" { target x86_64-*-* } } */
+
+#include <stdio.h>
+
+const char *str = "Hello World";
+
+int main() {
+ printf("str = %p %s\n",str, str);
+ return 0;
+}
+/* { dg-final { scan-assembler-not "movl" } } */
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
2014-10-20 17:58 ` Andrew Pinski
@ 2014-10-20 19:09 ` Sriraman Tallam
2014-10-20 20:10 ` Xinliang David Li
0 siblings, 1 reply; 10+ messages in thread
From: Sriraman Tallam @ 2014-10-20 19:09 UTC (permalink / raw)
To: Andrew Pinski
Cc: Xinliang David Li, GCC Patches, Jan Hubicka, Cary Coutant,
Paul Pluzhnikov
On Mon, Oct 20, 2014 at 10:51 AM, Andrew Pinski <pinskia@gmail.com> wrote:
> On Mon, Oct 20, 2014 at 10:46 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>> On Mon, Oct 20, 2014 at 10:42 AM, Xinliang David Li <davidxl@google.com> wrote:
>>> Why removing the tree_code check?
>>
>> The actual problem happens because STRING_CSTs (end up in .lrodata)
>> are not set a far address as they dont match the VAR_DECL check here.
>> Futher, "ix86_in_large_data_p" call has the TREE_CODE check to do the
>> right thing so this seems unnecessary & buggy here.
>
> I think he is asking because TREE_STATIC (decl) || DECL_EXTERNAL
> (decl) might be an issue for STRING_CSTs.
TREE_STATIC is true for STRING_CSTs and DECL_EXTERNAL false, that looks ok.
Thanks
Sri
>
> Thanks,
> Andrew
>
>
>>
>> Thanks
>> Sri
>>
>>>
>>> David
>>>
>>> On Mon, Oct 20, 2014 at 10:35 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>>> Hi,
>>>>
>>>> This patch is under review for trunk GCC :
>>>> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
>>>>
>>>> In the mean time, is this ok for google/gcc-4_9 branch? Without
>>>> this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
>>>> boundary.
>>>>
>>>> Thanks
>>>> Sri
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
2014-10-20 19:09 ` Sriraman Tallam
@ 2014-10-20 20:10 ` Xinliang David Li
2014-10-20 20:46 ` Sriraman Tallam
0 siblings, 1 reply; 10+ messages in thread
From: Xinliang David Li @ 2014-10-20 20:10 UTC (permalink / raw)
To: Sriraman Tallam
Cc: Andrew Pinski, GCC Patches, Jan Hubicka, Cary Coutant, Paul Pluzhnikov
On Mon, Oct 20, 2014 at 11:59 AM, Sriraman Tallam <tmsriram@google.com> wrote:
> On Mon, Oct 20, 2014 at 10:51 AM, Andrew Pinski <pinskia@gmail.com> wrote:
>> On Mon, Oct 20, 2014 at 10:46 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>> On Mon, Oct 20, 2014 at 10:42 AM, Xinliang David Li <davidxl@google.com> wrote:
>>>> Why removing the tree_code check?
>>>
>>> The actual problem happens because STRING_CSTs (end up in .lrodata)
>>> are not set a far address as they dont match the VAR_DECL check here.
>>> Futher, "ix86_in_large_data_p" call has the TREE_CODE check to do the
>>> right thing so this seems unnecessary & buggy here.
>>
>> I think he is asking because TREE_STATIC (decl) || DECL_EXTERNAL
>> (decl) might be an issue for STRING_CSTs.
>
> TREE_STATIC is true for STRING_CSTs and DECL_EXTERNAL false, that looks ok.
The values for STRING_CST make sense, but it is not documented in
tree.h for use with STRING_CST. Maybe do this:
if (((TREE_CODE (decl) == VAR_DECL&& (TREE_STATIC (decl) ||
DECL_EXTERNAL (decl))
||TREE_CODE (decl) == STRING_CST)
&& ix86_in_large_data_p (decl))
which can be simplified to:
if ((TREE_CODE (decl) == VAR_DECL && is_global_var (decl) ||TREE_CODE
(decl) == STRING_CST)
&& ix86_in_large_data_p (decl))
...
David
>
> Thanks
> Sri
>
>>
>> Thanks,
>> Andrew
>>
>>
>>>
>>> Thanks
>>> Sri
>>>
>>>>
>>>> David
>>>>
>>>> On Mon, Oct 20, 2014 at 10:35 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>>>> Hi,
>>>>>
>>>>> This patch is under review for trunk GCC :
>>>>> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
>>>>>
>>>>> In the mean time, is this ok for google/gcc-4_9 branch? Without
>>>>> this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
>>>>> boundary.
>>>>>
>>>>> Thanks
>>>>> Sri
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
2014-10-20 20:10 ` Xinliang David Li
@ 2014-10-20 20:46 ` Sriraman Tallam
2014-10-20 20:56 ` Xinliang David Li
0 siblings, 1 reply; 10+ messages in thread
From: Sriraman Tallam @ 2014-10-20 20:46 UTC (permalink / raw)
To: Xinliang David Li
Cc: Andrew Pinski, GCC Patches, Jan Hubicka, Cary Coutant, Paul Pluzhnikov
[-- Attachment #1: Type: text/plain, Size: 1980 bytes --]
On Mon, Oct 20, 2014 at 12:59 PM, Xinliang David Li <davidxl@google.com> wrote:
> On Mon, Oct 20, 2014 at 11:59 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>> On Mon, Oct 20, 2014 at 10:51 AM, Andrew Pinski <pinskia@gmail.com> wrote:
>>> On Mon, Oct 20, 2014 at 10:46 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>>> On Mon, Oct 20, 2014 at 10:42 AM, Xinliang David Li <davidxl@google.com> wrote:
>>>>> Why removing the tree_code check?
>>>>
>>>> The actual problem happens because STRING_CSTs (end up in .lrodata)
>>>> are not set a far address as they dont match the VAR_DECL check here.
>>>> Futher, "ix86_in_large_data_p" call has the TREE_CODE check to do the
>>>> right thing so this seems unnecessary & buggy here.
>>>
>>> I think he is asking because TREE_STATIC (decl) || DECL_EXTERNAL
>>> (decl) might be an issue for STRING_CSTs.
>>
>> TREE_STATIC is true for STRING_CSTs and DECL_EXTERNAL false, that looks ok.
>
> The values for STRING_CST make sense, but it is not documented in
> tree.h for use with STRING_CST. Maybe do this:
>
> if (((TREE_CODE (decl) == VAR_DECL&& (TREE_STATIC (decl) ||
> DECL_EXTERNAL (decl))
> ||TREE_CODE (decl) == STRING_CST)
> && ix86_in_large_data_p (decl))
>
> which can be simplified to:
>
> if ((TREE_CODE (decl) == VAR_DECL && is_global_var (decl) ||TREE_CODE
> (decl) == STRING_CST)
> && ix86_in_large_data_p (decl))
Patch updated.
Thanks
Sri
> ...
>
> David
>>
>> Thanks
>> Sri
>>
>>>
>>> Thanks,
>>> Andrew
>>>
>>>
>>>>
>>>> Thanks
>>>> Sri
>>>>
>>>>>
>>>>> David
>>>>>
>>>>> On Mon, Oct 20, 2014 at 10:35 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> This patch is under review for trunk GCC :
>>>>>> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
>>>>>>
>>>>>> In the mean time, is this ok for google/gcc-4_9 branch? Without
>>>>>> this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
>>>>>> boundary.
>>>>>>
>>>>>> Thanks
>>>>>> Sri
[-- Attachment #2: pr63538.txt --]
[-- Type: text/plain, Size: 1232 bytes --]
Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c (revision 216287)
+++ config/i386/i386.c (working copy)
@@ -41331,8 +41331,8 @@ ix86_encode_section_info (tree decl, rtx rtl, int
{
default_encode_section_info (decl, rtl, first);
- if (TREE_CODE (decl) == VAR_DECL
- && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))
+ if (((TREE_CODE (decl) == VAR_DECL && is_global_var (decl))
+ || TREE_CODE(decl) == STRING_CST)
&& ix86_in_large_data_p (decl))
SYMBOL_REF_FLAGS (XEXP (rtl, 0)) |= SYMBOL_FLAG_FAR_ADDR;
}
Index: testsuite/gcc.dg/pr63538.c
===================================================================
--- testsuite/gcc.dg/pr63538.c (revision 0)
+++ testsuite/gcc.dg/pr63538.c (revision 0)
@@ -0,0 +1,14 @@
+/* PR63538 is about not using 64-bit addresses for .lrodata accesses when it
+ involves STRING_CSTs. */
+/* { dg-do compile { target x86_64-*-* } } */
+/* { dg-options "-O2 -mcmodel=medium -mlarge-data-threshold=0" { target x86_64-*-* } } */
+
+#include <stdio.h>
+
+const char *str = "Hello World";
+
+int main() {
+ printf("str = %p %s\n",str, str);
+ return 0;
+}
+/* { dg-final { scan-assembler-not "movl" } } */
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Google/gcc-4_9][PATCH][target/x86_64] PR 63538
2014-10-20 20:46 ` Sriraman Tallam
@ 2014-10-20 20:56 ` Xinliang David Li
0 siblings, 0 replies; 10+ messages in thread
From: Xinliang David Li @ 2014-10-20 20:56 UTC (permalink / raw)
To: Sriraman Tallam
Cc: Andrew Pinski, GCC Patches, Jan Hubicka, Cary Coutant, Paul Pluzhnikov
ok (for google branch).
David
On Mon, Oct 20, 2014 at 1:44 PM, Sriraman Tallam <tmsriram@google.com> wrote:
> On Mon, Oct 20, 2014 at 12:59 PM, Xinliang David Li <davidxl@google.com> wrote:
>> On Mon, Oct 20, 2014 at 11:59 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>> On Mon, Oct 20, 2014 at 10:51 AM, Andrew Pinski <pinskia@gmail.com> wrote:
>>>> On Mon, Oct 20, 2014 at 10:46 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>>>> On Mon, Oct 20, 2014 at 10:42 AM, Xinliang David Li <davidxl@google.com> wrote:
>>>>>> Why removing the tree_code check?
>>>>>
>>>>> The actual problem happens because STRING_CSTs (end up in .lrodata)
>>>>> are not set a far address as they dont match the VAR_DECL check here.
>>>>> Futher, "ix86_in_large_data_p" call has the TREE_CODE check to do the
>>>>> right thing so this seems unnecessary & buggy here.
>>>>
>>>> I think he is asking because TREE_STATIC (decl) || DECL_EXTERNAL
>>>> (decl) might be an issue for STRING_CSTs.
>>>
>>> TREE_STATIC is true for STRING_CSTs and DECL_EXTERNAL false, that looks ok.
>>
>> The values for STRING_CST make sense, but it is not documented in
>> tree.h for use with STRING_CST. Maybe do this:
>>
>> if (((TREE_CODE (decl) == VAR_DECL&& (TREE_STATIC (decl) ||
>> DECL_EXTERNAL (decl))
>> ||TREE_CODE (decl) == STRING_CST)
>> && ix86_in_large_data_p (decl))
>>
>> which can be simplified to:
>>
>> if ((TREE_CODE (decl) == VAR_DECL && is_global_var (decl) ||TREE_CODE
>> (decl) == STRING_CST)
>> && ix86_in_large_data_p (decl))
>
> Patch updated.
>
> Thanks
> Sri
>
>> ...
>>
>> David
>>>
>>> Thanks
>>> Sri
>>>
>>>>
>>>> Thanks,
>>>> Andrew
>>>>
>>>>
>>>>>
>>>>> Thanks
>>>>> Sri
>>>>>
>>>>>>
>>>>>> David
>>>>>>
>>>>>> On Mon, Oct 20, 2014 at 10:35 AM, Sriraman Tallam <tmsriram@google.com> wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> This patch is under review for trunk GCC :
>>>>>>> https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01638.html.
>>>>>>>
>>>>>>> In the mean time, is this ok for google/gcc-4_9 branch? Without
>>>>>>> this, -mcmodel=medium is unusable if .lrodata goes beyond the 2G
>>>>>>> boundary.
>>>>>>>
>>>>>>> Thanks
>>>>>>> Sri
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-10-20 20:49 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-20 17:42 [Google/gcc-4_9][PATCH][target/x86_64] PR 63538 Sriraman Tallam
2014-10-20 17:46 ` Xinliang David Li
2014-10-20 17:51 ` Sriraman Tallam
2014-10-20 17:58 ` Andrew Pinski
2014-10-20 19:09 ` Sriraman Tallam
2014-10-20 20:10 ` Xinliang David Li
2014-10-20 20:46 ` Sriraman Tallam
2014-10-20 20:56 ` Xinliang David Li
2014-10-20 18:05 ` Xinliang David Li
2014-10-20 18:59 ` Sriraman Tallam
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).