[llvm-commits] [llvm] r40502 - /llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp

Evan Cheng evan.cheng at apple.com
Wed Aug 1 15:20:18 PDT 2007


On Aug 1, 2007, at 10:22 AM, Chris Lattner wrote:

> Hi Evan,
>
> On Jul 25, 2007, at 11:30 PM, Evan Cheng wrote:
>
>> I do want to support static codegen for JIT. If non-JIT mode silently
>> change it to dynamic-no-pic, then we can't emulate with llc.
>>
>> An alternative is to define a code model that is somewhere between
>> small and medium. It's only used by Mac OS / static though. Not sure
>> if that's cleaner?
>
> Okay, instead of checking for isTargetDarwin() in this low-level
> place, what do you think of adding a new subtarget field, which is
> only set on darwin, and checking that instead?  The idea of doing
> this is that instead of checking isTargetDarwin(), you would check ST-
>> hasNoSmallModel() or something, which is more obvious to the reader
> what is going on.

A subtarget field is an acceptable compromise. However, it's not  
hasNoSmallModel(). We are still using small code model (i.e.  
everything must fit within 4G). It's just the lower 4G is not available.

Evan

>
> What do you think?
>
> -Chris
>
>> Evan
>>
>> Sent from my iPhone
>>
>> On Jul 25, 2007, at 10:47 PM, Chris Lattner <clattner at apple.com>
>> wrote:
>>
>>>
>>> On Jul 25, 2007, at 4:41 PM, Evan Cheng wrote:
>>>
>>>> Author: evancheng
>>>> Date: Wed Jul 25 18:41:36 2007
>>>> New Revision: 40502
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=40502&view=rev
>>>> Log:
>>>> Mac OS X x86-64 lower 4G address is not available.
>>>
>>> Hi Evan,
>>>
>>> Would it be better to have the X86 backend change the relo module to
>>> mdynamic-no-pic on darwin?  It seems strange to test the os in a  
>>> low-
>>> level place like this.
>>>
>>> -Chirs
>>>
>>>> Modified:
>>>>    llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
>>>>
>>>> Modified: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/
>>>> X86ISelDAGToDAG.cpp?rev=40502&r1=40501&r2=40502&view=diff
>>>>
>>>> ===
>>>> ===================================================================
>>>> ========
>>>> --- llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (original)
>>>> +++ llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp Wed Jul 25
>>>> 18:41:36 2007
>>>> @@ -615,7 +615,8 @@
>>>>       SDOperand N0 = N.getOperand(0);
>>>>       if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>
>>>> (N0)) {
>>>>         GlobalValue *GV = G->getGlobal();
>>>> -        bool isAbs32 = !is64Bit || isStatic;
>>>> +        // Mac OS X X86-64 lower 4G address is not available.
>>>> +        bool isAbs32 = !is64Bit || (isStatic && !Subtarget-
>>>>> isTargetDarwin());
>>>>         if (isAbs32 || isRoot) {
>>>>           AM.GV = GV;
>>>>           AM.Disp += G->getOffset();
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> 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