[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation

robert muth robert at muth.org
Mon Jun 8 14:42:38 PDT 2009


On Sun, Jun 7, 2009 at 11:53 PM, Evan Cheng <evan.cheng at apple.com> wrote:
>
> On Jun 7, 2009, at 6:59 AM, robert muth wrote:
>
>> On Sat, Jun 6, 2009 at 4:51 PM, Evan Cheng<evan.cheng at apple.com>
>> wrote:
>>> +cl::opt<std::string> FlagJumpTableSection("jumptable-section",
>>> +                                           cl::init(".data.jtab"));
>>> +
>>
>> I thought it would be nice to group all the jumptables together.
>> But as long as it stays configurable, I am fine to change the default
>> to ".data".
>
> There is already a TargetAsmInfo::JumpTableDataSection. Why not just
> use that?

Nice find. I will use that and possible change the current setting,
".const", if it does not work,

>>
>>> Is this necessary? Why not just put it in the normal data section?
>>> Also "outline" jumptable seems like a strange term. Can you think of
>>> something else?
>>
>>
>> Yes, that is a tough one. How about "NonInline" instead.
>
> Or "OutOfLine"?

That works for me.

> Please add a test case as well. Thanks,

I am not sure how to go about testing.
I have  a script that compiles a bunch of test
programs (gnu c torture test, etc.) and then runs the executables
on qemu.  I run this script with and without my flags and
make sure that I do not introduce any new problems
-- there are currently plenty of vararg issues.

I was thinking of sending this script to the list
or maybe checking it into the llvm tree.

The key is that whatever tests there are they should just
be run with and without the new flag.
How do you run backend tests?

Robert




> Evan
>
>>
>> Robert
>>
>>> Thanks,
>>> Evan
>>>
>>> Sent from my iPhone
>>> On Jun 2, 2009, at 6:26 PM, robert muth <robert at muth.org> wrote:
>>>
>>> Hi:
>>>
>>> This is my first patch submission. Hopefully, this is the proper the
>>> protocol.
>>> Attached is a patch for the llc ARM backend:
>>>
>>> Added mechanism to generate switch table in a data section
>>> rather than having it interleaved with the code.
>>> This is controlled by command line flags and off by default.
>>> Also, tried to document and improve the code where I modified it.
>>>
>>> Robert
>>>
>>> <llc.patch.txt>
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>




More information about the llvm-dev mailing list