Jakub and Aldy,
It looks like I am having another problem with this patch. Jakubs earlier
patch fixed things
for me when building my mips-mti-elf target but I just started building glibc
in mips16 mode
with the latest compiler and I am running into this assert:
mktime.c:147:1: internal
On Thu, Feb 21, 2013 at 11:02:56PM +, Steve Ellcey wrote:
Have you gotten any reports of problems with this patch? It seems to be
sending cc1 into an infinite
loop during the GCC testsuite for me. I am testing the mips-mti-linux-gnu
target and tests like
gcc.target/mips/call-saved-1.c
On Fri, 2013-02-22 at 11:03 +0100, Jakub Jelinek wrote:
The problem I believe is that Aldy has changed init_optabs and insn-opinit.c
to use this_fn_optabs instead of this_target_optabs, but it is only set in
invoke_set_current_function_hook. During save_target_globals we want to
init
On Fri, Feb 22, 2013 at 09:31:54AM -0800, Steve Ellcey wrote:
On Fri, 2013-02-22 at 11:03 +0100, Jakub Jelinek wrote:
The problem I believe is that Aldy has changed init_optabs and insn-opinit.c
to use this_fn_optabs instead of this_target_optabs, but it is only set in
Jakub Jelinek ja...@redhat.com writes:
On Fri, Feb 22, 2013 at 09:31:54AM -0800, Steve Ellcey wrote:
On Fri, 2013-02-22 at 11:03 +0100, Jakub Jelinek wrote:
The problem I believe is that Aldy has changed init_optabs and
insn-opinit.c
to use this_fn_optabs instead of this_target_optabs,
On Mon, Feb 18, 2013 at 12:50:59PM -0600, Aldy Hernandez wrote:
OK pending tests?
PR target/52555
* genopinit.c (raw_optab_handler): Use this_fn_optabs.
(swap_optab_enable): Same.
(init_all_optabs): Use argument instead of global.
* tree.h (struct
Have you gotten any reports of problems with this patch? It seems to be
sending cc1 into an infinite
loop during the GCC testsuite for me. I am testing the mips-mti-linux-gnu
target and tests like
gcc.target/mips/call-saved-1.c are causing cc1 to suck up all my memory and
swap space before
On 02/16/13 05:19, Richard Sandiford wrote:
Looks good to me otherwise, thanks.
Implemented all your suggestions.
Sorry that SWITCHABLE_TARGETS has been so much hassle. TBH, like Jakub
says in the PR, I was hoping things like the optimize attribute could
use the target_globals stuff too.
On Mon, Feb 18, 2013 at 12:50:59PM -0600, Aldy Hernandez wrote:
OK pending tests?
PR target/52555
* genopinit.c (raw_optab_handler): Use this_fn_optabs.
(swap_optab_enable): Same.
(init_all_optabs): Use argument instead of global.
* tree.h (struct
Aldy Hernandez al...@redhat.com writes:
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index b203cdd..5e98485 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -16313,7 +16313,26 @@ mips_set_mips16_mode (int mips16_p)
if (mips16_p)
{
if
Actually, thinking more about SWITCHABLE_TARGETS, I don't think this works
at all on those targets. this_target_optab is some random optab from
whatever has been left there by previous function, it can be either the
Eeech... this significantly complicates things.
After some further
On Fri, Feb 15, 2013 at 11:23:01AM -0600, Aldy Hernandez wrote:
+2013-02-15 Aldy Hernandez al...@redhat.com
+ Jakub Jelinek ja...@redhat.com
+
+ PR target/52555
+ * genopinit.c (raw_optab_handler): Use this_fn_optabs.
+ (swap_optab_enable): Same.
+
Looks good, just a few nits. But please wait for Richard's feedback on it.
Will do.
+ this_fn_optabs = fn-optabs ? (struct target_optabs *) fn-optabs
+ : this_target_optabs;
I'd prefer : here be below ? on the line above it.
Blame emacs. I use whatever indentation it
Richard.
I made all the changes you suggested.
I also changed other instances of s/this_target_optabs/this_fn_optabs/
which I forgot in the previous iteration. And I also changed
save_optabs_if_changed() to use this_fn_optabs, since init_all_optabs()
will generate the optabs into
Aldy Hernandez al...@redhat.com writes:
Richard.
I made all the changes you suggested.
I also changed other instances of s/this_target_optabs/this_fn_optabs/
which I forgot in the previous iteration. And I also changed
save_optabs_if_changed() to use this_fn_optabs, since
Sorry, just noticed:
+ /* If the optabs changed, record it in the node. */
+ if (memcmp (tmp_target_optabs, default_target_optabs,
+ sizeof (struct target_optabs)))
This should be this_target_optabs rather than default_target_optabs.
Nothing but target code and initialisers
On Wed, Feb 13, 2013 at 12:07:52PM -0600, Aldy Hernandez wrote:
Sorry, just noticed:
+ /* If the optabs changed, record it in the node. */
+ if (memcmp (tmp_target_optabs, default_target_optabs,
+ sizeof (struct target_optabs)))
This should be this_target_optabs rather than
On Mon, Feb 11, 2013 at 06:15:05PM -0600, Aldy Hernandez wrote:
How does this look?
Looks good to me.
Jakub, what's this you mention in the PR about caching
__optimize__((3))? You also mention I shouldn't compare against
this_target_optabs, but default_target_optabs. But what if
Jakub, what's this you mention in the PR about caching
__optimize__((3))? You also mention I shouldn't compare against
this_target_optabs, but default_target_optabs. But what if
this_target_optabs has changed? (See patch).
The reason for that is that this_target_optabs could at that point
On Tue, Feb 12, 2013 at 09:58:38AM -0600, Aldy Hernandez wrote:
OK for trunk?
I'd still prefer Richard to chime in, I'm really not familiar enough
with MIPS switchable target stuff.
+/* Recompute the optabs. If they have changed, save the new set of
+ optabs in the optimization node
Jakub Jelinek ja...@redhat.com writes:
On Mon, Feb 11, 2013 at 06:15:05PM -0600, Aldy Hernandez wrote:
How does this look?
Looks good to me.
Jakub, what's this you mention in the PR about caching
__optimize__((3))? You also mention I shouldn't compare against
this_target_optabs, but
Rather than:
/* Change optabs if needed. */
if (TREE_OPTIMIZATION_OPTABS (opts))
this_target_optabs
= (struct target_optabs *) TREE_OPTIMIZATION_OPTABS (opts);
else
this_target_optabs = default_target_optabs;
I think it'd be
Richard Sandiford rdsandif...@googlemail.com writes:
Aldy Hernandez al...@redhat.com writes:
Rather than:
/* Change optabs if needed. */
if (TREE_OPTIMIZATION_OPTABS (opts))
this_target_optabs
= (struct target_optabs *) TREE_OPTIMIZATION_OPTABS (opts);
Aldy Hernandez al...@redhat.com writes:
Rather than:
/* Change optabs if needed. */
if (TREE_OPTIMIZATION_OPTABS (opts))
this_target_optabs
= (struct target_optabs *) TREE_OPTIMIZATION_OPTABS (opts);
else
this_target_optabs =
The problem here is that -ffast-math is overridden when switching
optimization options on a per function basis with
__attribute__((optimize(O))).
The x86 ceilf* instructions depend on unsafe math optimizations, but the
optabs are created at the beginning of the compilation. When fast math
25 matches
Mail list logo