re PR target/60179 (target optimization attribute streaming is broken)

2014-05-21  Cesar Philippidis  <cesar@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	PR lto/60179
 
	gcc/testsuite/
	* lib/scanasm.exp (scan-lto-assembler): New procedure.
	* gcc.target/nios2/custom-fp-lto.c: New test.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r210714
This commit is contained in:
Cesar Philippidis 2014-05-21 07:45:36 -07:00 committed by Sandra Loosemore
parent 95989e5ce5
commit 19ce781984
3 changed files with 46 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2014-05-21 Cesar Philippidis <cesar@codesourcery.com>
Sandra Loosemore <sandra@codesourcery.com>
PR lto/60179
* lib/scanasm.exp (scan-lto-assembler): New procedure.
* gcc.target/nios2/custom-fp-lto.c: New test.
2014-05-21 Andreas Schwab <schwab@suse.de>
* g++.dg/cpp0x/pr61038.C (operator "" _s): Use size_t.

View File

@ -0,0 +1,29 @@
/* Test specification of custom instructions via pragma in the presence
of LTO. This test case formerly failed due to PR60179. */
/* { dg-do link } */
/* { dg-require-effective-target lto } */
/* { dg-options "-O1 -flto -flto-partition=one -save-temps" } */
/* -O1 in the options is significant. Without it FP operations may not be
optimized to custom instructions. */
#include <stdio.h>
#include <math.h>
#pragma GCC target ("custom-fabss=224")
float
custom_fp (float operand_a)
{
return fabsf (operand_a);
}
int
main (int argc, char *argv[])
{
return custom_fp ((float)argc) > 1.0;
}
/* { dg-final { scan-lto-assembler "custom\\t224, " } } */
/* { dg-final { cleanup-saved-temps } } */

View File

@ -500,3 +500,13 @@ proc dg-function-on-line { args } {
append final-code "$cmd\n"
}
# Look for a pattern in the .exe.ltrans0.s file produced by the
# compiler. See dg-scan for details.
proc scan-lto-assembler { args } {
set testcase [testname-for-summary]
set output_file "[file rootname [file tail $testcase]].exe.ltrans0.s"
verbose "output_file: $output_file"
dg-scan "scan-assembler" 1 $testcase $output_file $args
}