From: <fa...@us...> - 2012-07-05 00:34:04
|
Revision: 192 http://avr-llvm.svn.sourceforge.net/avr-llvm/?rev=192&view=rev Author: faluco Date: 2012-07-05 00:33:58 +0000 (Thu, 05 Jul 2012) Log Message: ----------- Overhaul of the code responsible of stack and frame codegen: - Removed the SPLOAD pseudo. - Introduced a STDWSPQRr pseudo for marking arguments passed through the stack. - Fixed adjcallframe pseudos getting into final code emission. - Optimized passing arguments through the stack: For every call, instead of allocating stack space and then use std chains, use push instructions that do both things saving 8 instrs per call site. - Optimized functions that have a frame pointer and have calls with arguments passed through the stack. We now reserve call frame space in function entry instead of allocating and restoring for every call site, saving around 16 insts per call. Coming next, updated tests, 1 is currently failing. Modified Paths: -------------- llvm/trunk/AVR/AVRExpandPseudoInsts.cpp llvm/trunk/AVR/AVRFrameLowering.cpp llvm/trunk/AVR/AVRFrameLowering.h llvm/trunk/AVR/AVRISelDAGToDAG.cpp llvm/trunk/AVR/AVRISelLowering.cpp llvm/trunk/AVR/AVRISelLowering.h llvm/trunk/AVR/AVRInstrInfo.td llvm/trunk/AVR/AVRRegisterInfo.cpp llvm/trunk/AVR/AVRRegisterInfo.td This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |