[LLVMdev] Disabling emission of jump table info

Richard Osborne richard at xmos.com
Mon Mar 1 16:09:24 PST 2010


On 01/03/10 21:14, Chris Lattner wrote:
> On Mar 1, 2010, at 10:52 AM, Richard Osborne wrote:
>    
>> On 23/02/10 14:58, Richard Osborne wrote:
>>      
>>> I've recently changed the XCore target to implement BR_JT as a jump to a
>>> series jumps. The jump table entries are expand inline in the function
>>> so there is no longer a need to emit jump tables at the end of the
>>> function. However the emission of jump tables at the end of a function
>>> is done inside the AsmPrinter base class and there seems to be no way of
>>> disabling this.
>>>
>>> This also seems to effect code produced for ARM Thumb2. Again each jump
>>> table is emitted twice - once inline in the code and once at the end of
>>> the function. The jump tables at the end of the function are unused.
>>>
>>> What would be the preferred way of dealing with this? Should I add a
>>> variable to AsmPrinter that can be set by targets to disable this
>>> emission at the end?
>>>        
>> The attached patch adds a bool to MCAsmInfo that can be used to disable the emission of jump tables at the end of a function and updates the XCore target to set this. Is this OK to commit?
>>      
> Hi Richard,
>
> This shouldn't go into MCAsmInfo, it's a "lowering" issue, not a "assembly syntax" issue.  ARM also has inline jump tables, how does it work?
>
> -Chris
I've attached the result of running llc -march=arm on 
test/CodeGen/XCore/switch.ll. The jump table entries are emitted twice, 
once inside the function after the label .LJTI1_0_0 and then again 
outside the function after the label .LJTI1_0. The .LJTI1_0 label at the 
start of the second set of jumptable entries is completely unreferenced.

Given that MCAsmInfo is the wrong place would it make sense to describe 
it instead as a separate type of jump table encoding and add it to the 
MachineJumpTableInfo::JTEntryKind enum?

-- 
Richard Osborne | XMOS
http://www.xmos.com

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: switch.s
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100302/dc46f567/attachment.ksh>


More information about the llvm-dev mailing list