[PATCH] Fix warnings building pdp11 port
Jeff Law
law@redhat.com
Tue Sep 29 18:54:00 GMT 2015
On 09/29/2015 12:11 PM, Trevor Saunders wrote:
> On Tue, Sep 29, 2015 at 10:55:46AM -0600, Jeff Law wrote:
>> The pdp11 port fails to build with the trunk because of a warning.
>> Essentially VRP determines that the result of using BRANCH_COST is a
>> constant with the range [0..1]. That's always less than 4, 3 and the
>> various other magic constants used with BRANCH_COST and VRP issues a warning
>> about that comparison.
>>
>> I expect we're going to be overhauling BRANCH_COST shortly. In the mean
>> time, this just revectors BRANCH_COST for the pdp11 into a function to
>> prevent VRP from collapsing the test and issuing the warning.
>>
>> Yes, this means more code in the pdp11 cross compiler. I'm not terribly
>> concerned about that and I couldn't stand the idea of scattering diagnostic
>> push/pop stuff all over the place to make just the pdp11 port happy.
>
> ENOPATCH, but it seems like that's the right direction anyway since it
> makes it slightly easier to convert the macro to a hook ;)
Bah. Attached this time :-)
Yea, hookization was in the back of my mind when I made the final choice
to use a function call.
Jeff
-------------- next part --------------
commit c6fc406c69342fdcca25ee48294bd43dd90facc2
Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue Sep 29 16:56:04 2015 +0000
[PATCH] Fix warnings building pdp11 port
* config/pdp11/pdp11.c (pdp11_branch_cost): New function.
* config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
inline macro expansion.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228259 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 68149c4..13e930a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2015-09-29 Jeff Law <law@redhat.com>
+ * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
+ * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
+ inline macro expansion.
+
* config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
* config/sh/sh.c (gen_shl_and): Fix undefined left shift
diff --git a/gcc/config/pdp11/pdp11-protos.h b/gcc/config/pdp11/pdp11-protos.h
index 86c6da3..aca3d82 100644
--- a/gcc/config/pdp11/pdp11-protos.h
+++ b/gcc/config/pdp11/pdp11-protos.h
@@ -47,3 +47,4 @@ extern void output_ascii (FILE *, const char *, int);
extern void pdp11_asm_output_var (FILE *, const char *, int, int, bool);
extern void pdp11_expand_prologue (void);
extern void pdp11_expand_epilogue (void);
+extern int pdp11_branch_cost (void);
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c
index f0c2a5d..8eb37c6 100644
--- a/gcc/config/pdp11/pdp11.c
+++ b/gcc/config/pdp11/pdp11.c
@@ -1933,4 +1933,10 @@ pdp11_scalar_mode_supported_p (machine_mode mode)
return default_scalar_mode_supported_p (mode);
}
+int
+pdp11_branch_cost ()
+{
+ return (TARGET_BRANCH_CHEAP ? 0 : 1);
+}
+
struct gcc_target targetm = TARGET_INITIALIZER;
diff --git a/gcc/config/pdp11/pdp11.h b/gcc/config/pdp11/pdp11.h
index 1d947f3..8339f1c 100644
--- a/gcc/config/pdp11/pdp11.h
+++ b/gcc/config/pdp11/pdp11.h
@@ -660,8 +660,7 @@ extern rtx cc0_reg_rtx;
/* there is no point in avoiding branches on a pdp,
since branches are really cheap - I just want to find out
how much difference the BRANCH_COST macro makes in code */
-#define BRANCH_COST(speed_p, predictable_p) (TARGET_BRANCH_CHEAP ? 0 : 1)
-
+#define BRANCH_COST(speed_p, predictable_p) pdp11_branch_cost ()
#define COMPARE_FLAG_MODE HImode
More information about the Gcc-patches
mailing list