[llvm-commits] [llvm] r75048 - in /llvm/trunk/lib/Target/ARM: ARMAddressingModes.h ARMBaseInstrInfo.cpp ARMBaseRegisterInfo.cpp ARMCodeEmitter.cpp ARMISelDAGToDAG.cpp ARMInstrInfo.td ARMInstrThumb2.td ARMLoadStoreOptimizer.cpp AsmPrinter/ARMAsmPrinter.cpp
clattner at apple.com
Thu Jul 16 01:41:06 CDT 2009
On Jul 9, 2009, at 11:26 AM, Evan Cheng wrote:
>> On Jul 8, 2009, at 2:04 PM, Evan Cheng wrote:
>>> Author: evancheng
>>> Date: Wed Jul 8 16:03:57 2009
>>> New Revision: 75048
>>> URL: http://llvm.org/viewvc/llvm-project?rev=75048&view=rev
>>> Change how so_imm and t2_so_imm are handled. At instruction
>>> selection time, the immediates are no longer encoded in the imm8 +
>>> rot format, that are left as it is. The encoding is now done in ams
>>> printing and code emission time instead.
>> Is this really needed? Aren't the instructions that these end up in
>> encoded very differently as well? If so, why not just have them
>> described "properly" when you pick a specific instruction? How do
>> plan to have the JIT support these?
> Before this change, the immediate is transformed into the actual HW
> encoding at isel time. The asm printer then change it back to the
> actual immediate. The JIT doesn't need to do anything. After this
> change, the immediate is only transformed at JIT time. There really is
> no difference in functionality.
> Some intermediate passes, such as the load / store multiple opt pass,
> needed to unscramble the immediate prior to the change. That makes
> little sense. Also, this makes it possible to actual understand the
> code when we look at the machine instruction dumps.
Ok, I can see that this is simpler and making the machineinstr dumps
more readable is definitely virtuous :). This is fine with me, but it
would be nice to be consistent where possible. Are all ARM immediates
handled this way now?
More information about the llvm-commits