the ABI compatibility test suite.)
Fortunately, this bug never made it into any (FSF or distribtion)
GCC release, so we can simply fix it now without introducing any
incompatibilities ...
I've checked in the following patch as obvious.
Bye,
Ulrich
ChangeLog:
2014-06-28 Ulrich Weigand ulrich.weig
Mike Stump wrote:
On Jun 28, 2014, at 3:31 AM, Ulrich Weigand uweig...@de.ibm.com wrote:
Mike Stump wrote:
(rs6000_aggregate_candidate): Use wide-int interfaces.
[snip]
- /* Can't handle incomplete types. */
- if (!COMPLETE_TYPE_P (type))
-return -1;
+ /* Can't handle
;
+ }
}
if (passed_in_gprs
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
aggregate types are in fact not aligned. */
+ else if (TARGET_MACHO rs6000_darwin64_abi
mode == BLKmode
type TYPE_ALIGN (type) 64)
return 128;
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
) \
- ((TARGET_ALTIVEC TREE_CODE (TREE_TYPE (FIELD)) == VECTOR_TYPE) \
-? 128 : COMPUTED)
-
#undef BIGGEST_FIELD_ALIGNMENT
/* Use ELF style section commands. */
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
David Edelsohn wrote:
On Wed, Jul 9, 2014 at 12:06 PM, Ulrich Weigand uweig...@de.ibm.com wrote:
Hello,
running the ABI compatibility test suite against another compiler showed
strange effects caused by code in ADJUST_FIELD_ALIGN on rs6000:
#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED
. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
-options -mabi=elfv2 } */
+
+struct f8
+ {
+float x[8];
+ };
+
+void test (struct f8 a, struct f8 b) /* { dg-message note: the ABI of passing
homogeneous float aggregates has changed } */
+{
+}
+
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
-byte alignment has changed } */
+{
+}
+
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
alignment has changed } */
+
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
: the layout of aggregates containing vectors with
8-byte alignment has changed } */
+
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
Richard Biener wrote:
On Mon, Jul 14, 2014 at 8:55 PM, Ulrich Weigand uweig...@de.ibm.com wrote:
Hello,
this is an attempt to update the prior patch:
https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00635.html
to add a -Wpsabi note as discussed.
However, this is causing a bit
} */
+
+struct f8
+ {
+float x[8];
+ };
+
+void test (struct f8 a, struct f8 b) /* { dg-message note: the ABI of passing
homogeneous float aggregates will change } */
+{
+}
+
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
a) /* { dg-message note: the ABI of passing aggregates
with 16-byte alignment will change } */
+{
+}
+
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
} } } */
+/* { dg-require-effective-target powerpc_altivec_ok } */
+/* { dg-options -maltivec } */
+
+struct test
+ {
+int a __attribute__((vector_size (8)));
+ }; /* { dg-message note: the layout of aggregates containing vectors with
8-byte alignment will change } */
+
--
Dr. Ulrich Weigand
GNU
the compat-use-*-compiler definitions.
load_lib compat.exp
+# Provide the g++-dg-prune routine (gcc-dp.exp is loaded by compat.exp)
+load_lib g++-dg.exp
+
g++_init
# Save variables for the C++ compiler under test, which each test will
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
will
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
rh1 */ \
+ rs6000_reg_names[119][0], /* SPE rh2 */ \
You need to actually initialize those rs6000_reg_names field in rs6000.c
if you refer to them here.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig
David Edelsohn wrote:
On Mon, Jul 14, 2014 at 2:52 PM, Ulrich Weigand uweig...@de.ibm.com wrote:
gcc/testsuite/ChangLog:
* config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
does not fit fully into floating-point registers, and there is still
space
the warning in the
log, just as with the C and C++ tests, but the warning is filtered out by the
dejagnu scripts and doesn't cause failures).
However, I've been testing with the above version of the macro, not sure if
that explains the difference.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux
rs6000_special_adjust_field_align_p(FIELD, COMPUTED) \
+ (TARGET_ALTIVEC TREE_CODE (TREE_TYPE (FIELD)) == VECTOR_TYPE)
/* Skip a variable name, enclosed in quotes (). */
static inline
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
;
! if (GET_MODE (x) != op_mode GET_MODE (x) != VOIDmode)
! return NULL_RTX;
! x = copy_to_mode_reg (op_mode, x);
}
return x;
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
Richard Henderson wrote:
On 11/12/2014 09:41 PM, Ulrich Weigand wrote:
* optabs.c (prepare_operand): Gracefully fail if the mode of X
does not match the operand mode expected by the insn pattern.
This is ok.
I've checked this in now, thanks.
I wondered whether s390 benefit from
2 const_int_operand )])
(label_ref (match_operand 3 ))
(pc)))]
!
! )
;;
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
to map them to hardware registers.
As I understand it, the change was supposed to only affect GCC internals,
all externally generated debug info was supposed to remain unchanged.
If there are changes in debug info, something must have gone wrong.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux
+
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
rohitarulraj wrote:
-Original Message-
From: Maciej W. Rozycki [mailto:ma...@codesourcery.com]
To: Ulrich Weigand
Cc: Dharmakan Rohit-B30502; Wienskoski Edmar-RA8797; David Edelsohn; gcc-
patc...@gcc.gnu.org; Alan Modra; Jakub Jelinek
Subject: Re: [RFC: Patch, PR 60102] [4.9
or not. So I'm fine with
your change, thanks for your work and patience.
Thanks for verifying!
David, is the patch OK to commit now?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
loaded is the stack pointer, we must
+ avoid loading any other value into it, even temporarily. */
+ if (REG_P (target) REGNO (target) == STACK_POINTER_REGNUM)
+ return false;
}
base_reg = XEXP (addr, 0);
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
}
hbr_insn = insn;
}
! if (INSN_CODE (insn) == CODE_FOR_blockage next_insn)
{
if (GET_MODE (insn) == TImode)
PUT_MODE (next_insn, TImode);
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
(operands[1]) + INTVAL (operands[2])
! GET_MODE_BITSIZE (GET_MODE (operands[0])))
! FAIL;
! spu_expand_insv(operands);
! DONE;
! })
;; Simplify a number of patterns that get generated by extv, extzv,
;; insv, and loads.
--
Dr. Ulrich Weigand
GNU/Linux compilers
.html
Actually, now I think the problem originally described there is still
valid: on s390 the CFA is *not* equal to the value at function entry,
but biased by 96/160 bytes. So setting the SP to the CFA is wrong ...
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
is wrong ...
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
Jakub Jelinek wrote:
On Wed, Feb 05, 2014 at 10:26:16PM +0100, Ulrich Weigand wrote:
Actually, now I think the problem originally described there is still
valid: on s390 the CFA is *not* equal to the value at function entry,
but biased by 96/160 bytes. So setting the SP to the CFA is wrong
}, \
{ cpp_os_yellowknife, CPP_OS_YELLOWKNIFE_SPEC }, \
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
middle-end/52306
* reload1.c (emit_input_reload_insns): Do not create invalid RTL
when changing the SET_DEST of a prior insn to avoid an input
reload.
This is OK.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
ENABLE_CHECKING
gcc_assert (find_replacement (XEXP (...)) == XEXP (...));
#endif
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
the condition if OLDEQUIV and OLD are different should be
true if the input value was inherited. Can you check whether
this case is hit with your test case?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
* reload1.c (emit_input_reload_insns): When reload_override_in,
set old to rl-in_reg when rl-in_reg is a subreg.
This is OK, assuming no regressions.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
if (reg_class_subset_p (BASE_REGS, rclass))
return BASE_REGS;
else
return NO_REGS;
}
(which is similar to how we did it for s390).
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
#if HAVE_DLFCN_H
*** done
*** 16602,16607
--- 16603,16610
+
+
fi
# Check strerror_r, cannot be above as versions with two and three arguments
exist
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
change is that sibcalls can be allowed in more cases than the current
code allows.
I concur with Jeff and Alan that 9/26 should be safe.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
Hello,
currently, there is no support for spu-elf in crossconfig.m4. In the past,
we've usually worked around this by configuring GCC with --with-newlib.
But that has other drawbacks since it performs no link tests at all, and
thus assumes only a very minimal set of features available via
Jonathan Wakely wrote:
On 20 March 2014 18:04, Ulrich Weigand wrote:
Hello,
currently, there is no support for spu-elf in crossconfig.m4. In the past,
we've usually worked around this by configuring GCC with --with-newlib.
But that has other drawbacks since it performs no link tests
.
This is OK.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
on
reload's choices. As long as moves and (secondary) reloads are fully
supported (and they should be), this should be OK ...
Zhenqiang, what specific problem are you seeing?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
Richard Henderson wrote:
On 11/06/2014 05:10 PM, Ulrich Weigand wrote:
+ /* For s390, CC REG is general_operand. But cstorecc4
only
+ handles CCZ1, which can not handle others like CCU.
*/
+ || GET_MODE_CLASS (GET_MODE (XEXP (cond, 0))) == MODE_CC
an oversight?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
says BASE_REGNUM should be avoided, but the actual
implementation of the macro seems to avoid *all* registers *but*
BASE_REGNUM ...
Am I misreading this, or is there indeed a logic error here?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
), which is
invalid RTL.
Now I guess this check could be relaxed if somewhere else in combine we'd
recognize the substitution into a clobber and simply omit it in that case.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
,
call_used_reg_set)
- || HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
If a register is in crossed_calls_clobber_regs, can it ever *not*
be a call-clobbered register?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers
,
the ABI of passing homogeneous float aggregates
- has changed in GCC 4.10);
+ has changed in GCC 5);
}
}
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
__go_can_recover).
[ Since the runtime is compiled for the target with the appropriate
ABI setting, the #if works as intended when in runtime code. ]
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
ulrich.weig...@de.ibm.com
the compiler shouldn't crash either, but I guess it
really ought to be possible to fix this problem elsewhere.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
is probably not limited to AVR.
Indeed, the fix also looks quite obvious though I know nothing about the
code at all.
Thus, ok from a RM perspective if a reload-affine person approves it.
The patch was originally by Bernd, but FWIW it looks good to me as well.
Bye,
Ulrich
--
Dr. Ulrich Weigand
Matthew Gretton-Dann wrote:
2013-02-02 Matthew Gretton-Dann matthew.gretton-d...@linaro.org
* gcc/reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
This is OK.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig
,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
.
(find_reloads_address_1): Don't use address_reloaded parameter.
This is OK.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
, ...)?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
-constraints-1.c: New testcase.
This is OK.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
Ramana Radhakrishnan wrote:
On 9 September 2011 18:04, Ulrich Weigand uweig...@de.ibm.com wrote:
In theory, LEGITIMIZE_RELOAD_ADDRESS could attempt to handle them by
substituting the equivalent constant and then reloading the result.
However, this might need additional steps (pushing
;
+ }
+ break;
default:
gcc_unreachable ();
}
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
changes in the interface
to the callback? Any suggestions what could be going on here?
Note that the implementation of the callback is in
config/spu/spu-c.c:spu_macro_to_expand
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
the
patch even if I don't know if it bootstraps on SPU or PPC in general.
Well, SPU doesn't bootstrap as such (it's a target-only architecture),
but I can confirm that the patch does fix the newlib build failure I
was seeing on SPU.
Thanks for the quick fix!
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU
-tokens_kind == TOKENS_KIND_EXTENDED)
return ((LAST (context).ptoken - FIRST (context).ptoken)
/ sizeof (cpp_token *));
ptoken seems to be of type const cpp_token **, so the pointer
subtraction already divides by sizeof (cpp_token *).
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain
]);
! operands[6] = spu_const (V16QImode, 31);
})
(define_insn nop
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
like to add such optimizations for AVR, it would be straightforward
to pass the address space argument to LEGITIMIZE_RELOAD_ADDRESS. But that
can certainly be done as an independent patch.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig
, OPTAB_DIRECT);
gcc_assert (sel != NULL);
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?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain
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?
Yes
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
(use_lhs);
if (!INTEGRAL_TYPE_P (use_type)
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
checked in the following patch.
Bye,
Ulrich
2012-04-16 Ulrich Weigand ulrich.weig...@linaro.org
* config/arm/arm.c (arm_print_operand): Fix invalid alignment
hints for 'A' operand types.
=== modified file 'gcc/config/arm/arm.c'
--- gcc/config/arm/arm.c2012-03-29 10:35
. Those would override in either case.)
Could you explain in more detail the problem you see with that?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
yet another address
space number to represent the full space of 48-bit pointers; accessing
a so-qualified MEM would require first loading the segment part into a
(free) segment register, and then using that register to perform the
access ...
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain
vector code (up to 70%), it would really be a pity to see the
patch going nowhere ...
Is there anything we can do to help make the patch more acceptable?
Any suggestions welcome ...
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig
that any other pass will do on its own ...
In particular, constrain_operands does not (and is not supposed to)
perform any modification of the input pattern, it just checks whether
the pattern as-is validly matches an alternative.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux
for
another cast, and detect over-widening situations itself?
Does this look reasonable? Any comments or suggestions appreciated!
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
sense,
probably when targeting Cortex-A cores.)
Thanks again to you and Vlad for looking into this long-standing problem!
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
Richard Guenther wrote:
On Tue, 24 Apr 2012, Ulrich Weigand wrote:
Does this look reasonable? Any comments or suggestions appreciated!
Yes, getting rid of this fragile interaction by doing more work in
vect_recog_widen_shift_pattern sounds like the correct thing to do.
OK, I'll try
Andreas Krebbel wrote:
2011-11-17 Andreas Krebbel andreas.kreb...@de.ibm.com
* reload.c (find_reloads): Change the loop nesting when trying an
alternative with swapped operands.
This is OK.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z
reg_preferred_class returns 255 for the new pseudo.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
|| !CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (use_stmt)))
return NULL;
+ if (!vect_same_loop_or_bb_p (last_stmt, use_stmt))
+ return NULL;
+
use_lhs = gimple_assign_lhs (use_stmt);
use_type = TREE_TYPE (use_lhs);
--
Dr. Ulrich
, use_stmt))
- return NULL;
-
use_lhs = gimple_assign_lhs (use_stmt);
use_type = TREE_TYPE (use_lhs);
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
RELOAD_FOR_INPADDR_ADDRESS.
This is OK. (You also ought to mention the RELOAD_FOR_OUTADDR_ADDRESS
part of the change in the ChangeLog.)
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
Bernd Schmidt wrote:
On 04/27/2012 06:25 PM, Ulrich Weigand wrote:
Bernd Schmidt wrote:
We're creating new pseudos, and while we're resizing some data
structures, we aren't doing it for everything.
@@ -3983,7 +3983,8 @@ find_moveable_pseudos (void)
last_moveable_pseudo
Richard Sandiford wrote:
Ulrich Weigand uweig...@de.ibm.com writes:
Richard Sandiford wrote:
Vladimir Makarov vmaka...@redhat.com writes:
Taking your results for S390 and ARM with Neon into account, I guess it
should be included and probably made by default for these 2 targets
Bin Cheng wrote:
Thanks for reviewing, I modified the ChangeLog. Is it ok for trunk and 4.7?
Yes, this is OK for trunk.
Once it has been in trunk for a week or so and nobody reported any regressions,
it would also be OK to backport to 4.7.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU
Richard Guenther wrote:
On Mon, Apr 30, 2012 at 6:19 PM, Ulrich Weigand uweig...@de.ibm.com wrote:
Hello,
as a second step in refactoring this patch introduces a routine
vect_find_single_use to determine whether a defining statement
has one single use within the current vectorization
Richard Guenther wrote:
On Tue, 24 Apr 2012, Ulrich Weigand wrote:
However, even so, it might actually be preferable to just handle such
cases within vect_recog_widen_shift_pattern itself. Indeed, the routine
already looks for another subsequent type cast, in order to handle
unsigned
SLP, which means some of the tests needed to be modified).
You fix looks correct to me; thanks for looking into this!
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
Richard Guenther wrote:
On Thu, Mar 8, 2012 at 3:29 PM, Ulrich Weigand uweig...@de.ibm.com wrote:
- Should I try to improve forwprop to handle casts and additional re-
association cases until it handles the above expression?
Yes, ideally by trying to sub-divide this task into separate
Richard Guenther wrote:
On Fri, May 18, 2012 at 10:27 PM, Ulrich Weigand uweig...@de.ibm.com wrote:
The following patch rewrites associate_plusminus to remove all the
explicitly coded special cases, and instead performs a scan of the
plus/minus tree similar to what is done in tree-ssa
...
Solving this problem in the context of the existing tree-ssa-reassoc
algorithm is indeed yet another issue that I need to think about.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
. */
+ if (!optimize)
+ split_all_insns_noflow ();
+
minipool_fix_head = minipool_fix_tail = NULL;
/* The first insn must always be a note, or the code below won't
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
Richard Earnshaw wrote:
On 23/07/12 14:57, Ulrich Weigand wrote:
* config/arm/arm.c (arm_reorg): Ensure all insns are split.
OK.
Checked in now. Is this OK for 4.7 as well?
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig
,
build_int_cst (TREE_TYPE (ptr),
-(HOST_WIDE_INT)TYPE_ALIGN_UNIT (vectype)));
So once TYPE_ALIGN is actually set up correctly, this hopefully
will just work as expected ...
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig
an unaligned access 0
vect } } */
! /* { dg-final { scan-tree-dump-times Alignment of access forced using
peeling 2 vect { xfail { vect_no_align || { ! vect_natural_alignment } } } }
} */
/* { dg-final { cleanup-tree-dump vect } } */
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
. ]
Otherwise the patch looks good to me.
Thanks,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
ulrich.weig...@de.ibm.com
1 - 100 of 452 matches
Mail list logo