summaryrefslogtreecommitdiff
path: root/gcc/simplify-rtx.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-06 08:53:11 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-06 08:53:11 +0000
commitb3f76ab5d483cfa5df281142a92e06a242853670 (patch)
tree56b6457372e7ce447bcc0d30ab7f7fd8beeec6d3 /gcc/simplify-rtx.c
parent76c66009a833271e1c3428f75f5a4a564490b49f (diff)
downloadgcc-b3f76ab5d483cfa5df281142a92e06a242853670.tar.gz
PR rtl-optimization/23098
* cse.c (fold_rtx_mem): Call delegitimize_address target hook. * simplify-rtx.c (constant_pool_reference_p): New function. * rtl.h (constant_pool_reference_p): New prototype. * config/i386/i386.md (pushf split, mov[sdx]f split): Use constant_pool_reference_p in condition and avoid_constant_pool_reference in preparation statements. * gcc.target/i386/pr23098.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103935 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r--gcc/simplify-rtx.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 13e90e99bfd..d3ec956c1ae 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -209,6 +209,14 @@ avoid_constant_pool_reference (rtx x)
return x;
}
+
+/* Return true if X is a MEM referencing the constant pool. */
+
+bool
+constant_pool_reference_p (rtx x)
+{
+ return avoid_constant_pool_reference (x) != x;
+}
/* Make a unary operation by first seeing if it folds and otherwise making
the specified operation. */