This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Linaro gcc mirror + linaro-local branches".
The branch, hjl/iamcu/improve has been updated discards d1110d9f2b741cab19b4f259378c5cf5309c9807 (commit) discards aa0faba86d6d9f8b8b7257b92c85a060957daaaa (commit) discards 8ac9e51d7aa572f7a9f753030e26a4525cdd52e7 (commit) via edaf7b408321130511f0e241dbe43c8542a2cc34 (commit) via 83631397ef593d142238ba84fc0d6769f91a13db (commit) via c8d3b2392243cce3401c09314864c59817fb2cff (commit) via 386ef929491c3bd00483807105092ca7d39a8759 (commit) via 3c70ff33b6dd548b057bcb528861a7d5e5f8a2fe (commit) via 81a13bd55ce60ba410d6f73a4b0a87e84df8d7f3 (commit) via 04d7d3e8f50c61bb0e90684b73b756450a9ee3e1 (commit) via b75bf564fe1f9088a7a60fb95d2b87b2780bc0b0 (commit)
This update added new revisions after undoing existing revisions. That is to say, the old revision is not a strict subset of the new revision. This situation occurs when you --force push a change and generate a repository containing something like this:
* -- * -- B -- O -- O -- O (d1110d9f2b741cab19b4f259378c5cf5309c9807) \ N -- N -- N (edaf7b408321130511f0e241dbe43c8542a2cc34)
When this happens we assume that you've already had alert emails for all of the O revisions, and so we here report only the revisions in the N branch from the common base, B.
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit edaf7b408321130511f0e241dbe43c8542a2cc34 Author: H.J. Lu hjl.tools@gmail.com Date: Wed Jul 8 04:55:05 2015 -0700
Add check_effective_target_iamcu
Skip tests which are incompatible with IA MCU.
diff --git a/gcc/testsuite/gcc.target/i386/i386.exp b/gcc/testsuite/gcc.target/i386/i386.exp index 8ca6c51..cf6778d 100644 --- a/gcc/testsuite/gcc.target/i386/i386.exp +++ b/gcc/testsuite/gcc.target/i386/i386.exp @@ -380,6 +380,16 @@ proc check_effective_target_avx512vbmi { } { } "-mavx512vbmi" ] }
+# Return 1 if the target is IA MCU. + +proc check_effective_target_iamcu {} { + return [check_no_compiler_messages iamcu assembly { + #ifndef __iamcu__ + #error NO + #endif + }] +} + # If a testcase doesn't have special options, use these. global DEFAULT_CFLAGS if ![info exists DEFAULT_CFLAGS] then { @@ -394,7 +404,12 @@ global runtests # Special case compilation of vect-args.c so we don't have to # replicate it 16 times. if [runtest_file_p $runtests $srcdir/$subdir/vect-args.c] { - foreach type { "" -mmmx -m3dnow -msse -msse2 -mavx -mavx2 -mavx512f } { + if [ check_effective_target_iamcu ] { + set types { "" } + } else { + set types { "" -mmmx -m3dnow -msse -msse2 -mavx -mavx2 -mavx512f } + } + foreach type $types { foreach level { "" -O } { set flags "$type $level" verbose -log "Testing vect-args, $flags" 1 @@ -404,8 +419,92 @@ if [runtest_file_p $runtests $srcdir/$subdir/vect-args.c] { }
# Everything else. -set tests [lsort [glob -nocomplain $srcdir/$subdir/*.[cS]]] -set tests [prune $tests $srcdir/$subdir/vect-args.c] +set pruned_tests $srcdir/$subdir/vect-args.c +set all_tests [lsort [glob -nocomplain $srcdir/$subdir/*.[cS]]] +if [ check_effective_target_iamcu ] { + # Skip tests which are incompatible with Intel MCU. + set tests {} + foreach t $all_tests { + if { [string match "$srcdir/$subdir/20001127-1.c" $t] \ + || [string match "$srcdir/$subdir/20080723-1.c" $t] \ + || [string match "$srcdir/$subdir/980226-1.c" $t] \ + || [string match "$srcdir/$subdir/980414-1.c" $t] \ + || [string match "$srcdir/$subdir/addr-sel-1.c" $t] \ + || [string match "$srcdir/$subdir/pause-2.c" $t] \ + || [string match "$srcdir/$subdir/pow-1.c" $t] \ + || [string match "$srcdir/$subdir/pr30848.c" $t] \ + || [string match "$srcdir/$subdir/pr45296.c" $t] \ + || [string match "$srcdir/$subdir/pr57736.c" $t] \ + || [string match "$srcdir/$subdir/pr57848.c" $t] \ + || [string match "$srcdir/$subdir/pr58048.c" $t] \ + || [string match "$srcdir/$subdir/pr66047.c" $t] \ + || [string match "$srcdir/$subdir/readeflags-1.c" $t] \ + || [string match "$srcdir/$subdir/sibcall-6.c" $t] \ + || [string match "$srcdir/$subdir/sse-5.c" $t] \ + || [string match "$srcdir/$subdir/aggregate-ret*.c" $t] \ + || [string match "$srcdir/$subdir/avx*.c" $t] \ + || [string match "$srcdir/$subdir/funcspec-*.c" $t] \ + || [string match "$srcdir/$subdir/long-double-*.c" $t] \ + || [string match "$srcdir/$subdir/pr57756*.c" $t] \ + || [string match "$srcdir/$subdir/pr59390*.c" $t] \ + || [string match "$srcdir/$subdir/pr59794-*.c" $t] \ + || [string match "$srcdir/$subdir/pr60205-*.c" $t] \ + || [string match "$srcdir/$subdir/pr61925-*.c" $t] \ + } { + continue + } + set options [dg-get-options $t] + if { ! [string match "*-mmmx*" $options] \ + && ! [string match "*-m3dnow*" $options] \ + && ! [string match "*-msse*" $options] \ + && ! [string match "*-mssse*" $options] \ + && ! [string match "*-mavx*" $options] \ + && ! [string match "*-madx*" $options] \ + && ! [string match "*-maes*" $options] \ + && ! [string match "*-mbmi*" $options] \ + && ! [string match "*-mclflushopt*" $options] \ + && ! [string match "*-mclwb*" $options] \ + && ! [string match "*-mf16c*" $options] \ + && ! [string match "*-mfma*" $options] \ + && ! [string match "*-mfxsr*" $options] \ + && ! [string match "*-mhle*" $options] \ + && ! [string match "*-mlzcnt*" $options] \ + && ! [string match "*-mmwaitx*" $options] \ + && ! [string match "*-mpclmul*" $options] \ + && ! [string match "*-mpcommit*" $options] \ + && ! [string match "*-mprefetchwt1*" $options] \ + && ! [string match "*-mprfchw*" $options] \ + && ! [string match "*-mrdrnd*" $options] \ + && ! [string match "*-mrdseed*" $options] \ + && ! [string match "*-mrtm*" $options] \ + && ! [string match "*-msha*" $options] \ + && ! [string match "*-mtbm*" $options] \ + && ! [string match "*-mxop*" $options] \ + && ! [string match "*-mxsave*" $options] \ + && ! [string match "*-mvzeroupper*" $options] \ + && ! [string match "*-march=i686*" $options] \ + && ! [string match "*-march=atom*" $options] \ + && ! [string match "*-march=core*" $options] \ + && ! [string match "*-march=nocona*" $options] \ + && ! [string match "*-march=pentium*" $options] \ + && ! [string match "*-march=amdfam10*" $options] \ + && ! [string match "*-march=athlon*" $options] \ + && ! [string match "*-march=barcelona*" $options] \ + && ! [string match "*-march=bdver*" $options] \ + && ! [string match "*-march=k6*" $options] \ + && ! [string match "*-march=k8*" $options] \ + && ! [string match "*-march=opteron*" $options] \ + && ! [string match "*-march=x86-64*" $options] \ + && ! [string match "*-march=native*" $options] \ + && ! [string match "*-mfpmath=*" $options] \ + && ! [string match "*-mregparm=*" $options] \ + } { + lappend tests $t + } + } +} else { + set tests $all_tests +}
# Main loop. dg-runtest $tests "" $DEFAULT_CFLAGS
commit 83631397ef593d142238ba84fc0d6769f91a13db Author: H.J. Lu hjl.tools@gmail.com Date: Wed Jul 8 08:28:03 2015 -0700
Limit alignment on error_mark_node variable
There is no need to try different alignment on variable of error_mark_node.
gcc/
PR target/66810 * varasm.c (align_variable): Don't try different alignment on variable of error_mark_node.
gcc/testsuite/
PR target/66810 * gcc.target/i386/pr66810.c: New test.
diff --git a/gcc/testsuite/gcc.target/i386/pr66810.c b/gcc/testsuite/gcc.target/i386/pr66810.c new file mode 100644 index 0000000..4778b37 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr66810.c @@ -0,0 +1,10 @@ +/* { dg-do compile { target ia32 } } */ +/* { dg-options "-mno-sse -mno-mmx -miamcu" } */ + +int vv; + +void +i (void) +{ + static int a[vv]; /* { dg-error "storage size" } */ +} diff --git a/gcc/varasm.c b/gcc/varasm.c index b69b3a3..be33cb4 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -1016,7 +1016,8 @@ align_variable (tree decl, bool dont_output_data) align = MAX_OFILE_ALIGNMENT; }
- if (! DECL_USER_ALIGN (decl)) + /* Don't try different alignment for error_mark_node. */ + if (! DECL_USER_ALIGN (decl) && TREE_TYPE (decl) != error_mark_node) { #ifdef DATA_ABI_ALIGNMENT unsigned int data_abi_align
commit c8d3b2392243cce3401c09314864c59817fb2cff Author: H.J. Lu hjl.tools@gmail.com Date: Wed Jul 8 14:07:08 2015 -0700
Check int_size_in_bytes in ix86_return_in_memory
ix86_return_in_memory should check negative return from int_size_in_bytes, similar to other ports.
gcc/
PR target/66817 * config/i386/i386.c (ix86_return_in_memory): Return true if int_size_in_bytes returns negative for IA MCU.
gcc/testsuite/
PR target/66817 * gcc.target/i386/pr66817.c: New test.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 55a32ac..54ee6f3 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -8682,7 +8682,7 @@ ix86_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED) /* Intel MCU psABI returns scalars and aggregates no larger than 8 bytes in registers. */ if (TARGET_IAMCU) - return VECTOR_MODE_P (mode) || size > 8; + return VECTOR_MODE_P (mode) || size < 0 || size > 8;
if (mode == BLKmode) return true; diff --git a/gcc/testsuite/gcc.target/i386/pr66817.c b/gcc/testsuite/gcc.target/i386/pr66817.c new file mode 100644 index 0000000..7ec18b7 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr66817.c @@ -0,0 +1,27 @@ +/* { dg-do compile { target ia32 } } */ +/* { dg-options "-O2 -mno-sse -mno-mmx -miamcu" } */ + +extern void abort (void); +int +main (int argc, char **argv) +{ + int size = 10; + typedef struct + { + char val[size]; + } + block; + block a, b; + block __attribute__((noinline)) + retframe_block () + { + return *(block *) &b; + } + b.val[0] = 1; + b.val[9] = 2; + a=retframe_block (); + if (a.val[0] != 1 + || a.val[9] != 2) + abort (); + return 0; +}
-----------------------------------------------------------------------
Summary of changes: gcc/ChangeLog | 19 +++++++- gcc/c-family/ChangeLog | 5 ++ gcc/c-family/c-omp.c | 2 + gcc/config/aarch64/aarch64.c | 21 +++++++++ gcc/config/i386/i386.c | 2 +- gcc/config/i386/predicates.md | 2 +- gcc/cp/ChangeLog | 5 ++ gcc/cp/decl.c | 2 +- gcc/cp/pt.c | 2 +- gcc/testsuite/ChangeLog | 11 +++++ gcc/testsuite/g++.dg/vect/simd-clone-1.cc | 55 ++++++++++++++++++++++ gcc/testsuite/g++.dg/vect/vect.exp | 2 +- gcc/testsuite/gcc.dg/vect/tree-vect.h | 8 +++- gcc/testsuite/gcc.target/i386/pr37870.c | 2 +- .../torture/pr8081.c => gcc.target/i386/pr66817.c} | 4 +- 15 files changed, 131 insertions(+), 11 deletions(-) create mode 100644 gcc/testsuite/g++.dg/vect/simd-clone-1.cc copy gcc/testsuite/{gcc.dg/torture/pr8081.c => gcc.target/i386/pr66817.c} (80%)
hooks/post-receive