summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-03-01 02:34:08 +0000
committerChris Lattner <sabre@nondot.org>2004-03-01 02:34:08 +0000
commit5c7d3cda78b3d506b2876b5d6d0376b52016b261 (patch)
tree7d7c0b3fc1c15b76be8c8bbb30e3174e8ac9d329 /llvm/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp
parent482cf01a1e9c422c81ba6fe1ae5f386fbb839768 (diff)
downloadbcm5719-llvm-5c7d3cda78b3d506b2876b5d6d0376b52016b261.tar.gz
bcm5719-llvm-5c7d3cda78b3d506b2876b5d6d0376b52016b261.zip
Fix a minor code-quality issue. When passing 8 and 16-bit integer constants
to function calls, we would emit dead code, like this: int Y(int, short, double); int X() { Y(4, 123, 4); } --- Old X: sub %ESP, 20 mov %EAX, 4 mov DWORD PTR [%ESP], %EAX *** mov %AX, 123 mov %AX, 123 movsx %EAX, %AX mov DWORD PTR [%ESP + 4], %EAX fld QWORD PTR [.CPIX_0] fstp QWORD PTR [%ESP + 8] call Y mov %EAX, 0 # IMPLICIT_USE %EAX %ESP add %ESP, 20 ret Now we emit: X: sub %ESP, 20 mov %EAX, 4 mov DWORD PTR [%ESP], %EAX mov %AX, 123 movsx %EAX, %AX mov DWORD PTR [%ESP + 4], %EAX fld QWORD PTR [.CPIX_0] fstp QWORD PTR [%ESP + 8] call Y mov %EAX, 0 # IMPLICIT_USE %EAX %ESP add %ESP, 20 ret Next up, eliminate the mov AX and movsx entirely! llvm-svn: 12026
Diffstat (limited to 'llvm/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud