aboutsummaryrefslogtreecommitdiff
path: root/gcc/stack-ptr-mod.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-08-04 14:10:45 +0200
committerRichard Biener <rguenther@suse.de>2020-08-04 15:29:19 +0200
commit1af5cdd77985daf76130f527deac425c43df9f49 (patch)
treeb9f60d270eeda2fded7364104ac18674414d3c9b /gcc/stack-ptr-mod.c
parent7bd72dd5a385dfa6d49cfe640cefc9ed187361d3 (diff)
downloadgcc-1af5cdd77985daf76130f527deac425c43df9f49.zip
gcc-1af5cdd77985daf76130f527deac425c43df9f49.tar.gz
gcc-1af5cdd77985daf76130f527deac425c43df9f49.tar.bz2
tree-optimization/88240 - stopgap for floating point code-hoisting issues
This adds a stopgap measure to avoid performing code-hoisting on mixed type loads when the load we'd insert in the hoisting position would be a floating point one. This is because certain targets (hello x87) cannot perform floating point loads without possibly altering the bit representation and thus cannot be used in place of integral loads. 2020-08-04 Richard Biener <rguenther@suse.de> PR tree-optimization/88240 * tree-ssa-sccvn.h (vn_reference_s::punned): New flag. * tree-ssa-sccvn.c (vn_reference_insert): Initialize punned. (vn_reference_insert_pieces): Likewise. (visit_reference_op_call): Likewise. (visit_reference_op_load): Track whether a ref was punned. * tree-ssa-pre.c (do_hoist_insertion): Refuse to perform hoist insertion on punned floating point loads. * gcc.target/i386/pr88240.c: New testcase.
Diffstat (limited to 'gcc/stack-ptr-mod.c')
0 files changed, 0 insertions, 0 deletions