summaryrefslogtreecommitdiffstats
path: root/llvm/lib/System/Unix/Program.inc
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2008-12-12 21:47:02 +0000
committerDuncan Sands <baldrick@free.fr>2008-12-12 21:47:02 +0000
commit8f352fe1005ce93f7eb5b9ae389bf1d67ca1515c (patch)
tree034ef9100ef3b98a4a823a740049090128e2b66e /llvm/lib/System/Unix/Program.inc
parentc4499feb1a27fd6966c403fc559631fc1cffff33 (diff)
downloadbcm5719-llvm-8f352fe1005ce93f7eb5b9ae389bf1d67ca1515c.tar.gz
bcm5719-llvm-8f352fe1005ce93f7eb5b9ae389bf1d67ca1515c.zip
When expanding unaligned loads and stores do not make
use of illegal integer types: instead, use a stack slot and copying via integer registers. The existing code is still used if the bitconvert is to a legal integer type. This fires on the PPC testcases 2007-09-08-unaligned.ll and vec_misaligned.ll. It looks like equivalent code is generated with these changes, just permuted, but it's hard to tell. With these changes, nothing in LegalizeDAG produces illegal integer types anymore. This is a prerequisite for removing the LegalizeDAG type legalization code. While there I noticed that the existing code doesn't handle trunc store of f64 to f32: it turns this into an i64 store, which represents a 4 byte stack smash. I added a FIXME about this. Hopefully someone more motivated than I am will take care of it. llvm-svn: 60964
Diffstat (limited to 'llvm/lib/System/Unix/Program.inc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud