[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 16 11:40:33 PDT 2009


On Jul 15, 2009, at 11:41 PM, Chris Lattner wrote:

>
> 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
>>>> 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.
>
> 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?

Yes, I believe so.

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