[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

Evan Cheng evan.cheng at apple.com
Thu Jul 9 11:26:58 PDT 2009


On Jul 8, 2009, at 3:54 PM, Chris Lattner 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
>> Log:
>> 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 you
> 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.

Evan


>
> -Chris
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list