[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPC32ISelLowering.cpp
Chris Lattner
lattner at cs.uiuc.edu
Tue Sep 27 15:18:36 PDT 2005
Changes in directory llvm/lib/Target/PowerPC:
PPC32ISelLowering.cpp updated: 1.25 -> 1.26
---
Log message:
Darwin, like many BSD systems, has a setjmp/longjmp which saves the signal mask
on setjmp calls and restores it on longjmp calls (both of which require syscalls).
This makes the calls REALLY slow. Use _setjmp/_longjmp instead. This speeds up
hexxagon from 120.31s to 15.68s: from 5.53x slower than GCC to 28% faster than GCC.
---
Diffs of the changes: (+3 -0)
PPC32ISelLowering.cpp | 3 +++
1 files changed, 3 insertions(+)
Index: llvm/lib/Target/PowerPC/PPC32ISelLowering.cpp
diff -u llvm/lib/Target/PowerPC/PPC32ISelLowering.cpp:1.25 llvm/lib/Target/PowerPC/PPC32ISelLowering.cpp:1.26
--- llvm/lib/Target/PowerPC/PPC32ISelLowering.cpp:1.25 Tue Sep 13 14:33:40 2005
+++ llvm/lib/Target/PowerPC/PPC32ISelLowering.cpp Tue Sep 27 17:18:25 2005
@@ -28,6 +28,9 @@
// Fold away setcc operations if possible.
setSetCCIsExpensive();
+ // Use _setjmp/_longjmp instead of setjmp/longjmp.
+ setUseUnderscoreSetJmpLongJmp(true);
+
// Set up the register classes.
addRegisterClass(MVT::i32, PPC32::GPRCRegisterClass);
addRegisterClass(MVT::f32, PPC32::FPRCRegisterClass);
More information about the llvm-commits
mailing list