[llvm-commits] [llvm] r40502 - /llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
Chris Lattner
clattner at apple.com
Wed Aug 1 10:22:22 PDT 2007
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.
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
More information about the llvm-commits
mailing list