Hello!
See comment above inline_secondary_memory_needed function in i386.c.
2011-08-27 Uros Bizjak ubiz...@gmail.com
PR target/37191
* config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
from different units in a single alternative.
Tested on
Hi,
this patch is for a specific case in RTX simplification where infinite
recursion ensues, causing the out-of-stack segfault in PR49720.
Tracking back the origin of this bug, the exact revision causing this
was rev.92429, back in 2004.
The clause in
From: David Miller da...@davemloft.net
Date: Wed, 26 Oct 2011 23:07:11 -0400 (EDT)
From: Alan Modra amo...@gmail.com
Date: Thu, 27 Oct 2011 13:29:56 +1030
Some recent patch has exposed a reload bug. I'm seeing
I think this might be a side effect or Eric's recent changes,
CC:'d.
Eric,
Hi!
This morning I've noticed a build failure, USERDEF_LITERAL_CHECK
macro wasn't defined. The problem is that the gencheck binary
includes an array with all tree names (includes all-tree.def),
and depended on all-tree.def (which is a move-if-change file)
and $(lang_tree_files), but not on
On Wed, Oct 26, 2011 at 10:22:21PM -0700, Ian Lance Taylor wrote:
I don't think it is possible to trigger this using C because I don't
think it is possible to have a zero-length STRING_CST in C.
Ugh.
I think the following should work, after all it will be tiny more efficient,
I chose to use
Richard Henderson wrote:
On 10/26/2011 07:30 AM, Ulrich Weigand wrote:
This fails since for u == 4 and mode == V4SFmode it attempts to expand
a V4SFmode shift, which is unsupported.
Shouldn't this be using the mode of the selector rather than the mode
of the result in any case?
On Wed, 26 Oct 2011, Mike Stump wrote:
On Oct 26, 2011, at 6:10 AM, Richard Guenther wrote:
This completely rewrites LTO option merging.
Any comments?
Wondering if It breaks darwin?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50876
We have:
On Wed, 26 Oct 2011, Richard Guenther wrote:
This completely rewrites LTO option merging. At compile (uselessly
now at WPA?) time we now stream a COLLECT_GCC_OPTIONS like string
as it comes from argv of the compiler binary. Those options are
read in by the LTO driver (lto-wrapper), merged
-Original Message-
From: Michael Matz [mailto:m...@suse.de]
Sent: Wednesday, October 26, 2011 11:47 PM
To: Kai Tietz
Cc: Jiangning Liu; Richard Guenther; Kai Tietz; gcc-patches@gcc.gnu.org;
Richard Henderson
Subject: Re: [patch tree-optimization]: Improve handling of
On Thu, Oct 27, 2011 at 1:22 AM, Martin Jambor mjam...@suse.cz wrote:
Hi,
I've been asked by Maxim Kuvyrkov to revive the following patch which
has not made it to 4.6. Currently, when type based devirtualization
detects a potential type change, it simply gives up on gathering any
On Wed, 26 Oct 2011, Joseph S. Myers wrote:
On Wed, 26 Oct 2011, Richard Guenther wrote:
Index: trunk/gcc/opts-global.c
===
*** trunk.orig/gcc/opts-global.c2011-10-26 13:46:24.0 +0200
---
2011/10/27 Jiangning Liu jiangning@arm.com:
-Original Message-
From: Michael Matz [mailto:m...@suse.de]
Sent: Wednesday, October 26, 2011 11:47 PM
To: Kai Tietz
Cc: Jiangning Liu; Richard Guenther; Kai Tietz; gcc-patches@gcc.gnu.org;
Richard Henderson
Subject: Re: [patch
The crash is in find_valid_class() called from push_reload(), via this
code block around line 1184 of reload.c:
enum reg_class in_out_class
= find_valid_class (outmode, GET_MODE (SUBREG_REG (out)),
subreg_regno_offset (REGNO (SUBREG_REG (out)),
When we try to predicate an insn in the scheduler, we must check whether
the condition has been overwritten. The current code for that tries to
look for an insn writing the condition register, then checking
REG_DEP_TRUE deps. It fails in a situation as follows:
[A1] branch
A1:A0 = some operation
Hi,
tested x86_64-linux (with _GLIBCXX_USE_C99_COMPLEX_TR1 manually set to
zero for the affected function), committed to mainline. Will go in 4.6.3
too.
Thanks,
Paolo.
///
2011-10-27 Richard B. Kreckel krec...@ginac.de
Paolo Carlini
Ian,
I committed this patch which should fix this problem. Bootstrapped and
ran Go testsuite on x86_64-unknown-linux-gnu.
thanks, but this is not enough:
nawk: syntax error at source line 173
context is
([^ ]*)$, cparam) == 0) {
nawk: illegal statement at source line 173
nawk:
Hi,
Let me know if you need additional details, or what else.
How is the template case failing?
Some preliminary notes, maybe you can already make some sense out of
this, more later, if you like:
Thus we have this testcase:
template class V
struct impl
{
template class T static T
Hi,
I've worked with the parameter-has-not-been-modified mechanism in
ipa-prop.c after not seeing for quite some time and found the original
infos and temporary parm_infos confusing. Thus I at least renamed
all the parm_infos (which are deallocated after the analysis ends and
which have
Status
==
The GCC trunk is still in stage1. Stage1 will last until
Nov 7th (including, use your timezone to your advantage) after
which we will have been in stage1 for nearth 8 months.
In stage3 the trunk will be open for general bugfixing, no
new features will be accepted.
Now is time to
We failed to handle the case of a scalar shift operand in do_binop.
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.
Richard.
2010-10-27 Richard Guenther rguent...@suse.de
PR middle-end/50731
* tree-vect-generic.c (do_binop): Handle scalar operands.
Index:
Hi!
Here's a patch for PR47698, which is about CMOV should not be
generated for memory address marked as volatile.
Successfully bootstrapped and passed make check on x86_64-unknown-linux-gnu.
Is it Ok?
regards,
Sergos
/gcc
2011-10-27 Sergey Ostanevich
PR rtl-optimization/47698
This fixes a few warnings when building c6x.c. Committed.
Bernd
Index: gcc/ChangeLog
===
--- gcc/ChangeLog (revision 180564)
+++ gcc/ChangeLog (working copy)
@@ -1,3 +1,10 @@
+2011-10-24 Bernd Schmidt
Looks like
qualified_name_lookup_error (object_type, tmpl, member,
input_location);
is passing the wrong first argument; the scope argument should be the
same as we passed to lookup_qualified_name.
Jason
Hi,
Looks like
qualified_name_lookup_error (object_type, tmpl, member,
input_location);
is passing the wrong first argument; the scope argument should be the same as
we passed to lookup_qualified_name.
Ok, thanks, I'll work
On 10/27/2011 08:57 AM, Paolo Carlini wrote:
Ok, thanks, I'll work more on this later today. Then, if we fix that we don't
error out at all, right? Because this is a reject valid, AFAIK.
In that case, lookup_qualified_name shouldn't be returning error_mark_node.
Jason
On 27 Oct 2011, at 11:33, Eric Botcazou wrote:
The crash is in find_valid_class() called from push_reload(), via
this
code block around line 1184 of reload.c:
enum reg_class in_out_class
= find_valid_class (outmode, GET_MODE (SUBREG_REG (out)),
On Wed, Oct 26, 2011 at 8:25 PM, Martin Jambor mjam...@suse.cz wrote:
Hi,
Honza requested that we do attempt to produce pass-through jump
functions even when the actual formal parameter that is being passed
on is addressable - provided that we can prove it has not changed
value, of course.
On Thu, Oct 27, 2011 at 6:02 AM, Paolo Carlini paolo.carl...@oracle.com wrote:
Hi,
tested x86_64-linux (with _GLIBCXX_USE_C99_COMPLEX_TR1 manually set to zero
for the affected function), committed to mainline. Will go in 4.6.3 too.
Hmm, why is the test of the form x 0.0, and not testing the
fwprop may propagate a SET_SRC that contains the last use of a REG to a
later point, but it will leave the REG_DEAD note in place, even though
it is no longer correct. I noticed this while investigating PR50826:
the initialization of the internal_arg_pointer has a REG_DEAD note for
%r29, but even
Hi,
On Thu, Oct 27, 2011 at 6:02 AM, Paolo Carlini paolo.carl...@oracle.com
wrote:
Hi,
tested x86_64-linux (with _GLIBCXX_USE_C99_COMPLEX_TR1 manually set to zero
for the affected function), committed to mainline. Will go in 4.6.3 too.
Hmm, why is the test of the form x 0.0, and not
Hi again,
Hmm, why is the test of the form x 0.0, and not testing the sign of x?
Actually, we can as well use the std::abs, no?
Paolo
Ian,
This patch updates the Go library to the most recent weekly release. I
think the only potential portability issues here are the use of the
ipv6_mreq struct. I'm not entirely sure the new exp/terminal package is
portable, but it might be.
the only issue I've found on Solaris is the use
Hello!
The GCC trunk is still in stage1. Stage1 will last until
Nov 7th (including, use your timezone to your advantage) after
which we will have been in stage1 for nearth 8 months.
In stage3 the trunk will be open for general bugfixing, no
new features will be accepted.
There is a patch
Hi
On 10/27/2011 08:57 AM, Paolo Carlini wrote:
Ok, thanks, I'll work more on this later today. Then, if we fix that we
don't error out at all, right? Because this is a reject valid, AFAIK.
In that case, lookup_qualified_name shouldn't be returning error_mark_node.
Yes, I suspected that.
fwprop may propagate a SET_SRC that contains the last use of a REG to a
later point, but it will leave the REG_DEAD note in place, even though
it is no longer correct. I noticed this while investigating PR50826:
the initialization of the internal_arg_pointer has a REG_DEAD note for
%r29, but
pr43165.c -Os -g exercises a bug in df-problems WRT the introduction of
debug temps. After pro_and_epilogue, the function was optimized to this:
push bp
mov bp,sp
# debug insn referencing bp
pop bp
I don't know why we bother to preserve and set up bp, it's not used in
nondebug insns (and even
This should fix PR50876, failure to properly separate switches
and their arguments from the LTO driver. It also corrects one
issue with counting arguments (causing us to drop the last
switch or switch argument). It also re-writes the code to use
an obstack for accumulating argv for the invoked
Hello,
The attach patch fixes the current marking of SMS loops to prevent
further scheduling as follows: it marks *all* the loop's bbs with
BB_DISABLE_SCHEDULE which prevents them from been scheduled later.
(with the current implementation if the loop has non empty latch then
it will be
On Thu, Oct 27, 2011 at 8:19 AM, Paolo Carlini pcarl...@gmail.com wrote:
Hi,
On Thu, Oct 27, 2011 at 6:02 AM, Paolo Carlini paolo.carl...@oracle.com
wrote:
Hi,
tested x86_64-linux (with _GLIBCXX_USE_C99_COMPLEX_TR1 manually set to zero
for the affected function), committed to mainline.
On Thu, Oct 27, 2011 at 8:21 AM, Paolo Carlini pcarl...@gmail.com wrote:
Hi again,
Hmm, why is the test of the form x 0.0, and not testing the sign of x?
Actually, we can as well use the std::abs, no?
Paolo
The point of using sign is so that signed zero is not
mischaracterized,
Hi,
sorry for delay with the review. This is my first pass through the backend
part, hopefully
someone else will do the middle end bits.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 2c53423..d7c4330 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -561,10
Hi,
I am surprised by your comment. You do not care and that is why you
are eager to
commit the patch without checking first with fellow area maintainers?
Yes, probably my comment wan't clear enough: my point was that I cannot spend
more time on this issue. I'm convinced, I may be wrong,
On Thu, Oct 27, 2011 at 10:19 AM, Paolo Carlini pcarl...@gmail.com wrote:
Hi,
I am surprised by your comment. You do not care and that is why you
are eager to
commit the patch without checking first with fellow area maintainers?
Yes, probably my comment wan't clear enough: my point was
Hello!
Apparently, reload does not like matching register alternatives in
*avx_unpcklpd256. Attached patch removes this problematic alternative
and generates vunpcklpd insn instead, since the later instruction has
the same length, latency, uops, etc as vmovddup while giving much
more freedom to
On Oct 27, 2011, Eric Botcazou ebotca...@adacore.com wrote:
fwprop may propagate a SET_SRC that contains the last use of a REG to a
later point, but it will leave the REG_DEAD note in place, even though
it is no longer correct. I noticed this while investigating PR50826:
the initialization
Jakub Jelinek ja...@redhat.com writes:
On Wed, Oct 26, 2011 at 10:22:21PM -0700, Ian Lance Taylor wrote:
I don't think it is possible to trigger this using C because I don't
think it is possible to have a zero-length STRING_CST in C.
Ugh.
I think the following should work, after all it
Hello!
This patch updates the Go library to the most recent weekly release. I
think the only potential portability issues here are the use of the
ipv6_mreq struct. I'm not entirely sure the new exp/terminal package is
portable, but it might be.
There are still problems with EpollEvent
On Thu, Oct 27, 2011 at 06:06:09PM +0200, Uros Bizjak wrote:
I would kindly ask someone fluent in fortran to construct a
compile-time testcase from the PR [1], that will correctly exercise
the fix on x86 with -O3 -mavx options and immortalize the testcase
in gfortran testsuite.
How's the
Rainer Orth r...@cebitec.uni-bielefeld.de writes:
the only issue I've found on Solaris is the use of pthread_yield, which
doesn't exist even on Solaris 11. The following patch checks for this,
and falls back to thr_yield if available.
Thanks--but is sched_yield available? I realized that I
On Thu, Oct 27, 2011 at 6:45 PM, Steve Kargl
s...@troutmask.apl.washington.edu wrote:
On Thu, Oct 27, 2011 at 06:06:09PM +0200, Uros Bizjak wrote:
I would kindly ask someone fluent in fortran to construct a
compile-time testcase from the PR [1], that will correctly exercise
the fix on x86
Ian Lance Taylor i...@google.com writes:
Thanks--but is sched_yield available? I realized that I misread the man
page; it looks like sched_yield is more portable than pthread_yield.
It is, but before Solaris 11 it only lives in librt.
Rainer
--
Patch below fixes a miscompilation observed whem building uclibc libpthread on
a mips-linux system.
The story start with the ipa-split optimization, which turns:
void fn()
{
if (cond) {
DO_STUFF;
}
}
into:
static void fn_helper()
{
DO_STUFF;
}
void fn()
{
if (cond)
This is support of a new option -maccumulate-args that implements
ACCUMULATE_OUTGOING_ARGS as proposed by Richard.
As 4.7 will be released very soon, I'd like to supply the documentation part
later and use the remaining stage I time for extension/improvements.
The tests ran 4 times with either
-Original Message-
From: Georg-Johann Lay
Sent: Thursday, October 27, 2011 11:26 AM
To: gcc-patches@gcc.gnu.org
Cc: Richard Henderson; Weddington, Eric; Denis Chertykov
Subject: [Patch,AVR]: Support -maccumulate-args option
This is support of a new option -maccumulate-args that
Hello,
I have committed the obvious cleanup below for a typo on a comment, into
trunk.
gcc/cp/
* cp-tree.h (DECL_DECLARES_TYPE_P): Fix comment.
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index cc12d15..7ff1491 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -3625,7
Weddington, Eric schrieb:
-Original Message-
From: Georg-Johann Lay
Sent: Thursday, October 27, 2011 11:26 AM
To: gcc-patches@gcc.gnu.org
Cc: Richard Henderson; Weddington, Eric; Denis Chertykov
Subject: [Patch,AVR]: Support -maccumulate-args option
This is support of a new option
On 10/26/2011 03:38 PM, Jason Merrill wrote:
On 10/26/2011 02:00 AM, Ed Smith-Rowland wrote:
The patch was bootstrapped and regtested on x86_64-linux-gnu.
Really? I ran into a warning about the unused suffix parameter to
interpret_integer. So I've fixed that error. I also added a couple
Tentative fix attached, it should restore the old behavior for the cases
where everything was working fine before. I'm going to give it some
testing.
PR rtl-optimization/46603
* reload.c (push_reload): In the out case, restore previous behavior
for subregs that don't
Hello,
This patch adds support for the alias-declaration feature of the c++11
specification, introduced by the paper N2258[1] and voted into in the
standard. It's a derivative work of a preliminary patch attached by
Jason Merrill to PR C++/45114[2].
alias-declaration introduces a new syntax for
Hi,
On Thu, Oct 27, 2011 at 03:07:10PM +0200, Richard Guenther wrote:
On Wed, Oct 26, 2011 at 8:25 PM, Martin Jambor mjam...@suse.cz wrote:
Hi,
2011-10-26 Martin Jambor mjam...@suse.cz
* ipa-prop.c (mark_modified): Moved up in the file.
Hi!
While testing other patches also with -masm=intel, I've noticed that
several insns output wrong mem sizes. The following patch fixes what I
found. %w1/%k1/%q1 will still %xmmN if it is a register and for ATT
syntax will print memory as normally, but for -masm=intel it will
print WORD
On Thu, Oct 27, 2011 at 9:14 PM, Jakub Jelinek ja...@redhat.com wrote:
While testing other patches also with -masm=intel, I've noticed that
several insns output wrong mem sizes. The following patch fixes what I
found. %w1/%k1/%q1 will still %xmmN if it is a register and for ATT
syntax will
On Thu, Oct 27, 2011 at 12:17 PM, Uros Bizjak ubiz...@gmail.com wrote:
On Thu, Oct 27, 2011 at 9:14 PM, Jakub Jelinek ja...@redhat.com wrote:
While testing other patches also with -masm=intel, I've noticed that
several insns output wrong mem sizes. The following patch fixes what I
found.
Hello!
Here's a patch for PR47698, which is about CMOV should not be
generated for memory address marked as volatile.
Successfully bootstrapped and passed make check on x86_64-unknown-linux-gnu.
PR rtl-optimization/47698
* config/i386/i386.c (ix86_expand_int_movcc) prevent
Hi!
This patch adds vec_pack_sfix_trunc_v4df and vec_pack_sfix_v4df
expanders, which allows e.g. f1 in the testcases to be vectorized using
32-byte vectors, even with -mavx.
Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
2011-10-27 Jakub Jelinek ja...@redhat.com
On 10/26/2011 03:38 PM, Jason Merrill wrote:
On 10/26/2011 02:00 AM, Ed Smith-Rowland wrote:
The patch was bootstrapped and regtested on x86_64-linux-gnu.
Really? I ran into a warning about the unused suffix parameter to
interpret_integer. So I've fixed that error. I also added a couple of
On 10/27/2011 12:31 PM, Jakub Jelinek wrote:
* config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,
vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders.
(*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns.
* gcc.target/i386/sse2-cvt-1.c: New test.
Hi!
With the patch I'm going to post momentarily which adds vlshrv{4,2}di and
vashlv{4,2}di patterns for -mavx2 vectorizable_shift ICEs, because the
frontends for long_long_var1 long_long_var2 emit long_long_var1 (int)
long_long_var2
and vectorizable_shift isn't prepared to handle type
On 10/27/2011 03:32 PM, Ed Smith-Rowland wrote:
+ if (TREE_CODE (TREE_TYPE (decl)) != LANG_TYPE)
+argtypes = TYPE_ARG_TYPES (TREE_TYPE (decl));
If you have multiple overloaded operator _foo, you need to iterate
over them looking for the one (or ones, in the case of numeric literals)
you
Hi!
This patch cleans up the vector/vector shifts, there is no need
to write them with lots of vec_selects/vec_concats etc.
Additionally, it hooks them up into the standard vlshrmode3,
vashlmode3 and vashrmode3 expanders so that the vectorizer
can use them. The V16QImode and V8HImode expanders
Hi,
On Thu, Oct 27, 2011 at 11:06:02AM +0200, Richard Guenther wrote:
On Thu, Oct 27, 2011 at 1:22 AM, Martin Jambor mjam...@suse.cz wrote:
Hi,
I've been asked by Maxim Kuvyrkov to revive the following patch which
has not made it to 4.6. Currently, when type based devirtualization
On Thu, Oct 27, 2011 at 9:50 PM, Jakub Jelinek ja...@redhat.com wrote:
Hi!
This patch cleans up the vector/vector shifts, there is no need
to write them with lots of vec_selects/vec_concats etc.
Additionally, it hooks them up into the standard vlshrmode3,
vashlmode3 and vashrmode3 expanders
On Thu, Oct 27, 2011 at 2:10 PM, Dodji Seketeli do...@redhat.com wrote:
Hello,
This patch adds support for the alias-declaration feature of the c++11
specification, introduced by the paper N2258[1] and voted into in the
standard. It's a derivative work of a preliminary patch attached by
On 10/27/2011 03:10 PM, Dodji Seketeli wrote:
+/* Setter for the TYPE_DECL_ALIAS_P proprety above. */
+#define SET_TYPE_DECL_ALIAS_P(NODE, VAL) \
+ (DECL_LANG_FLAG_6 (TYPE_DECL_CHECK (NODE)) = (VAL))
This seems unnecessary.
+#define TYPE_DECL_NAMES_ALIAS_TEMPLATE_P(NODE)
Then you'd have to analyze the compile-time impact of the IPA
splitting on its own when not iterating. ?Then you should look
at what actually was the optimizations that were performed
that lead to the improvement (I can see some indirect inlining
happening, but everything else would be a bug in
Ho hum, more patches on our way to mergeability.
This seems to be more fallout from the last merge. There's an apparent
discrepancy between what we think is valid gimple in
ipa_tm_insert_gettmclone_call() and what verify_gimple_call() believes
is true.
This, along with other patches I have
On 10/26/2011 02:15 PM, Aldy Hernandez wrote:
* trans-mem.c (ipa_tm_execute): Do not include aliases in
tm_callees.
(callback_mark_needed): Set analyzed bit.
Ok.
r~
The following patch fixes some issues with the Power7 scheduling description.
The patch is neutral on cpu2006 (was actually hoping to see some improvements,
but it's still the right thing to do since it more accurately describes the
hardware).
Bootstrap/regtest on powerpc64-linux with no new
2011-10-27 Chung-Lin Tang clt...@codesourcery.com
PR rtl-optimization/49720
* simplify-rtx.c (simplify_relational_operation_1): Detect
infinite recursion condition in (eq/ne (plus x cst1) cst2)
simplifies to (eq/ne x (cst2 - cst1)) case.
testsuite/
*
This patch fixes the detection of transactions regions for transactions
that have __transaction_cancel statements. The block that has the over
label to which an aborted transaction jumps does not belong to this
transaction, but to the enclosing region. The included testcase would
fail with prior
Richard,
Just as Matt posted his findings about the effect of iterating early
optimizations, I've got the new patch ready. This patch is essentially a
complete rewrite and addresses the comments you made.
On 18/10/2011, at 9:56 PM, Richard Guenther wrote:
If we'd want to iterate early
Hi again,
On 10/27/2011 08:57 AM, Paolo Carlini wrote:
Ok, thanks, I'll work more on this later today. Then, if we fix that we don't
error out at all, right? Because this is a reject valid, AFAIK.
In that case, lookup_qualified_name shouldn't be returning error_mark_node.
A little more
The attached patch tightens the checking of the arguments
of the dshiftl and dshiftr argument. It also does a kind
type conversion when either I or J is a BOZ to the kind
type of the non-BOZ I or J.
OK for trunk?
2011-10-27 Steven G. Kargl ka...@gcc.gnu.org
PR fortran/50573
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c (gfc_trans_preloop_setup): Move array reference
initialisation earlier. Factor subsequent array references.
diff --git a/trans-array.c b/trans-array.c
index 3472804..4b21476 100644
--- a/trans-array.c
+++ b/trans-array.c
This is a 6 steps program to update gfc_trans_preloop_setup.
gfc_trans_preloop_setup appeared completely rewritten. These step by step
patches show that it is not the case.
Combined patch attached here.
OK?
diff --git a/trans-array.c b/trans-array.c
index
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion.
Special case outermost loop.
diff --git a/trans-array.c b/trans-array.c
index e3134f5..f5e30ae 100644
--- a/trans-array.c
+++ b/trans-array.c
@@ -2867,7 +2867,10 @@
This is for consistency. As dim == dimen-1 means we are in the outermost loop,
we should check against the loop dimension, not the array dimension.
An assertion is added to check that it is in fact the same.
OK?
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c (gfc_trans_preloop_setup): Move common code...
(add_array_offset): ...into that new function.
diff --git a/trans-array.c b/trans-array.c
index 476978e..f615e4e 100644
--- a/trans-array.c
+++ b/trans-array.c
@@ -2830,6
As the first line of context shows, if the first condition is false, the second
is false too. Thus, the first condition is useless.
OK?
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c (get_array_ref_dim): Remove redundant condition.
diff --git a/trans-array.c b/trans-array.c
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c (gfc_trans_preloop_setup): Assertify one condition.
diff --git a/trans-array.c b/trans-array.c
index 5500ec4..8359af2 100644
--- a/trans-array.c
+++ b/trans-array.c
@@ -2885,8 +2885,7 @@ gfc_trans_preloop_setup (gfc_loopinfo *
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c (gfc_conv_ss_startstride): Access array bounds along
array dimensions instead of loop dimensions.
diff --git a/trans-array.c b/trans-array.c
index 8359af2..f4d8a85 100644
--- a/trans-array.c
+++ b/trans-array.c
@@
This is a followup to my recent coarray/scalarizer changes, especially that one
cleaning-up gfc_walk_variable_expr/gfc_walk_array_ref:
http://gcc.gnu.org/ml/fortran/2011-09/msg00072.html
Scalar coarrays are not handled as AR_ELEMENT in the scalarizer.
Thus, no need to handle coarrays here.
OK?
We can't use temporaries to guess loop dimensions, as temporaries' bounds are
calculated from loop dimensions.
In the union:
union
{
struct { ... } scalar;
struct { ... } temp;
struct gfc_ss_info info
}
data;
We should not be writing to gfc_ss_terminator.
It is working without this patch because gfc_ss_terminator's next pointer is
NULL, so the loop stops just after it, and because we are writing zero to
gfc_ss_terminator, but it is already all zeros anyway.
OK?
2011-10-19 Mikael Morin
This is another preliminary change, to update function interfaces requiring
it, so that afterwards structures can be changed internally without impacting
function interfaces.
The main reason for these changes is that gfc_ss_info's dim and dimen fields
are to be moved to struct gfc_ss. Thus
The next patch is going to need array expression (available through gf_ss)
instead of just the array descriptor in gfc_trans_array_bound_check. This makes
the gfc_ss struct available as argument.
This requires an update of gfc_conv_array_index_offset too.
Both functions are static, they lose
This is a follow-up to the previous patch. It symplifies name obtention
so that later we can change structs with less pain. :-)
OK?
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c (gfc_trans_array_bound_check): Use ss argument
to get name.
diff --git a/trans-array.c
gfc_trans_create_temp_array uses dimensions heavily, and dimensions are to be
moved from gfc_ss_info to gfc_ss. To have them still available in
gfc_trans_create_temp_array, the gfc_ss_info argument should be a gfc_ss.
OK?
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.h
Same as previous patch, gfc_set_vector_loop_bounds uses dimensions, and thus
needs a gfc_ss struct as argument.
gfc_ prefix removed along the way.
OK?
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds):
Rename the
Same as previous patch, get_array_ref_dim uses dimensions and thus needs
a gfc_ss struct as argument.
OK?
2011-10-19 Mikael Morin mik...@gcc.gnu.org
* trans-array.c (get_array_ref_dim): Change argument type and name.
Obtain previous argument from the new argument in the body.
1 - 100 of 165 matches
Mail list logo