[llvm-commits] [llvm] r135219 - in /llvm/trunk: ./ autoconf/ cmake/ include/llvm-c/ include/llvm/Config/ include/llvm/Target/ lib/CodeGen/ lib/MC/MCDisassembler/ lib/Target/ARM/ lib/Target/ARM/MCTargetDesc/ lib/Target/Alpha/ lib/Target/Alpha/MCTa

Chandler Carruth chandlerc at google.com
Thu Jul 14 21:17:55 PDT 2011


On Thu, Jul 14, 2011 at 8:27 PM, Chandler Carruth <chandlerc at google.com>wrote:

> On Thu, Jul 14, 2011 at 8:20 PM, Chandler Carruth <chandlerc at google.com>wrote:
>
>> On Thu, Jul 14, 2011 at 5:41 PM, Chandler Carruth <chandlerc at google.com>wrote:
>>
>>> On Thu, Jul 14, 2011 at 5:29 PM, Evan Cheng <evan.cheng at apple.com>wrote:
>>>
>>>> Sorry and thanks!
>>>
>>>
>>> In with r135234.
>>>
>>
>> Evan, we're now seeing cyclic dependencies between X86CodeGen and
>> X86Desc... I'm really not sure why though.
>>
>> I can only reproduce this using a Debug+Asserts build with GCC. Self
>> hosted builds don't seem to suffer from the problem (???).
>>
>> I'm still trying to track down what the actual cycle is...
>>
>
> I think I found it:
>
> % nm lib/libLLVMX86Desc.a | grep '  *U' | c++filt | grep llvm::X86::
>                  U llvm::X86::CCRRegClass
>

And I think I fixed it with r135242. Once I finish testing, I'll also commit
a few cleanups that seem obvious once the header is removed. =D

Please review Evan and let me know if this is the right approach.


>                  U llvm::X86::GR8RegClass
>                  U llvm::X86::RSTRegClass
>                  U llvm::X86::FR32RegClass
>                  U llvm::X86::FR64RegClass
>                  U llvm::X86::GR16RegClass
>                  U llvm::X86::GR32RegClass
>                  U llvm::X86::GR64RegClass
>                  U llvm::X86::VR64RegClass
>                  U llvm::X86::RFP32RegClass
>                  U llvm::X86::RFP64RegClass
>                  U llvm::X86::RFP80RegClass
>                  U llvm::X86::VR128RegClass
>                  U llvm::X86::VR256RegClass
>                  U llvm::X86::GR32_ADRegClass
>                  U llvm::X86::GR32_TCRegClass
>                  U llvm::X86::GR64_TCRegClass
>                  U llvm::X86::DEBUG_REGRegClass
>                  U llvm::X86::GR16_ABCDRegClass
>                  U llvm::X86::GR32_ABCDRegClass
>                  U llvm::X86::GR32_NOSPRegClass
>                  U llvm::X86::GR64_ABCDRegClass
>                  U llvm::X86::GR64_NOSPRegClass
>                  U llvm::X86::GR8_NOREXRegClass
>                  U llvm::X86::GR16_NOREXRegClass
>                  U llvm::X86::GR32_NOREXRegClass
>                  U llvm::X86::GR64_NOREXRegClass
>                  U llvm::X86::GR64_TCW64RegClass
>                  U llvm::X86::GR8_ABCD_HRegClass
>                  U llvm::X86::GR8_ABCD_LRegClass
>                  U llvm::X86::CONTROL_REGRegClass
>                  U llvm::X86::SEGMENT_REGRegClass
>                  U llvm::X86::GR32_NOREX_NOSPRegClass
>                  U llvm::X86::GR64_NOREX_NOSPRegClass
>
> And then looking at X86CodeGen:
> % nm lib/libLLVMX86CodeGen.a | grep -v '  *U' | c++filt | grep
> 'llvm::X86::\w*RegClass'
> 0000000000000000 B llvm::X86::CCRRegClass
> 0000000000000b00 B llvm::X86::GR8RegClass
> 0000000000000e80 B llvm::X86::RSTRegClass
> 0000000000000180 B llvm::X86::FR32RegClass
> 0000000000000200 B llvm::X86::FR64RegClass
> 0000000000000280 B llvm::X86::GR16RegClass
> 0000000000000400 B llvm::X86::GR32RegClass
> 0000000000000780 B llvm::X86::GR64RegClass
> 0000000000001080 B llvm::X86::VR64RegClass
> 0000000000000d00 B llvm::X86::RFP32RegClass
> 0000000000000d80 B llvm::X86::RFP64RegClass
> 0000000000000e00 B llvm::X86::RFP80RegClass
> 0000000000000f80 B llvm::X86::VR128RegClass
> 0000000000001000 B llvm::X86::VR256RegClass
> 0000000000000500 B llvm::X86::GR32_ADRegClass
> 0000000000000700 B llvm::X86::GR32_TCRegClass
> 0000000000000a00 B llvm::X86::GR64_TCRegClass
> 0000000000000100 B llvm::X86::DEBUG_REGRegClass
> 0000000000000300 B llvm::X86::GR16_ABCDRegClass
> 0000000000000480 B llvm::X86::GR32_ABCDRegClass
> 0000000000000680 B llvm::X86::GR32_NOSPRegClass
> 0000000000000800 B llvm::X86::GR64_ABCDRegClass
> 0000000000000980 B llvm::X86::GR64_NOSPRegClass
> 0000000000000c80 B llvm::X86::GR8_NOREXRegClass
> 0000000000000380 B llvm::X86::GR16_NOREXRegClass
> 0000000000000580 B llvm::X86::GR32_NOREXRegClass
> 0000000000000880 B llvm::X86::GR64_NOREXRegClass
> 0000000000000a80 B llvm::X86::GR64_TCW64RegClass
> 0000000000000b80 B llvm::X86::GR8_ABCD_HRegClass
> 0000000000000c00 B llvm::X86::GR8_ABCD_LRegClass
> 0000000000000080 B llvm::X86::CONTROL_REGRegClass
> 0000000000000f00 B llvm::X86::SEGMENT_REGRegClass
> 0000000000000600 B llvm::X86::GR32_NOREX_NOSPRegClass
> 0000000000000900 B llvm::X86::GR64_NOREX_NOSPRegClass
> 0000000000003540 r llvm::X86::CCRSubRegClasses
> 00000000000036c0 r llvm::X86::GR8SubRegClasses
> 0000000000003880 r llvm::X86::RSTSubRegClasses
> 0000000000003600 r llvm::X86::FR32SubRegClasses
> 0000000000003640 r llvm::X86::FR64SubRegClasses
> 00000000000002e0 d llvm::X86::GR16SubRegClasses
> 00000000000003a0 d llvm::X86::GR32SubRegClasses
> 0000000000000560 d llvm::X86::GR64SubRegClasses
> 0000000000003900 r llvm::X86::VR64SubRegClasses
> 0000000000003938 r llvm::X86::CCRSuperRegClasses
> 00000000000008a0 d llvm::X86::GR8SuperRegClasses
> 00000000000037c0 r llvm::X86::RFP32SubRegClasses
> 0000000000003800 r llvm::X86::RFP64SubRegClasses
> 0000000000003840 r llvm::X86::RFP80SubRegClasses
> 00000000000039a8 r llvm::X86::RSTSuperRegClasses
> 00000000000006e0 d llvm::X86::VR128SubRegClasses
> 0000000000000720 d llvm::X86::VR256SubRegClasses
> 0000000000000760 d llvm::X86::FR32SuperRegClasses
> 0000000000000780 d llvm::X86::FR64SuperRegClasses
> 00000000000007a0 d llvm::X86::GR16SuperRegClasses
> 0000000000000830 d llvm::X86::GR32SuperRegClasses
> 0000000000003958 r llvm::X86::GR64SuperRegClasses
> 00000000000039c0 r llvm::X86::VR64SuperRegClasses
> 0000000000000420 d llvm::X86::GR32_ADSubRegClasses
> 0000000000000520 d llvm::X86::GR32_TCSubRegClasses
> 00000000000006a0 d llvm::X86::GR64_TCSubRegClasses
> 0000000000003990 r llvm::X86::RFP32SuperRegClasses
> 0000000000003998 r llvm::X86::RFP64SuperRegClasses
> 00000000000039a0 r llvm::X86::RFP80SuperRegClasses
> 0000000000000990 d llvm::X86::VR128SuperRegClasses
> 00000000000039b8 r llvm::X86::VR256SuperRegClasses
> 00000000000035c0 r llvm::X86::DEBUG_REGSubRegClasses
> 0000000000000320 d llvm::X86::GR16_ABCDSubRegClasses
> 00000000000003e0 d llvm::X86::GR32_ABCDSubRegClasses
> 0000000000003950 r llvm::X86::GR32_ADSuperRegClasses
> 00000000000004e0 d llvm::X86::GR32_NOSPSubRegClasses
> 0000000000000880 d llvm::X86::GR32_TCSuperRegClasses
> 00000000000005a0 d llvm::X86::GR64_ABCDSubRegClasses
> 0000000000000660 d llvm::X86::GR64_NOSPSubRegClasses
> 0000000000003980 r llvm::X86::GR64_TCSuperRegClasses
> 0000000000003780 r llvm::X86::GR8_NOREXSubRegClasses
> 0000000000000360 d llvm::X86::GR16_NOREXSubRegClasses
> 0000000000000460 d llvm::X86::GR32_NOREXSubRegClasses
> 00000000000005e0 d llvm::X86::GR64_NOREXSubRegClasses
> 0000000000003680 r llvm::X86::GR64_TCW64SubRegClasses
> 0000000000003700 r llvm::X86::GR8_ABCD_HSubRegClasses
> 0000000000003740 r llvm::X86::GR8_ABCD_LSubRegClasses
> 0000000000003580 r llvm::X86::CONTROL_REGSubRegClasses
> 0000000000003948 r llvm::X86::DEBUG_REGSuperRegClasses
> 00000000000007e0 d llvm::X86::GR16_ABCDSuperRegClasses
> 0000000000000840 d llvm::X86::GR32_ABCDSuperRegClasses
> 0000000000000870 d llvm::X86::GR32_NOSPSuperRegClasses
> 0000000000003960 r llvm::X86::GR64_ABCDSuperRegClasses
> 0000000000003978 r llvm::X86::GR64_NOSPSuperRegClasses
> 0000000000000960 d llvm::X86::GR8_NOREXSuperRegClasses
> 00000000000038c0 r llvm::X86::SEGMENT_REGSubRegClasses
> 0000000000000800 d llvm::X86::GR16_NOREXSuperRegClasses
> 0000000000000850 d llvm::X86::GR32_NOREXSuperRegClasses
> 0000000000003968 r llvm::X86::GR64_NOREXSuperRegClasses
> 0000000000003988 r llvm::X86::GR64_TCW64SuperRegClasses
> 00000000000008e0 d llvm::X86::GR8_ABCD_HSuperRegClasses
> 0000000000000920 d llvm::X86::GR8_ABCD_LSuperRegClasses
> 0000000000003940 r llvm::X86::CONTROL_REGSuperRegClasses
> 00000000000039b0 r llvm::X86::SEGMENT_REGSuperRegClasses
> 00000000000004a0 d llvm::X86::GR32_NOREX_NOSPSubRegClasses
> 0000000000000620 d llvm::X86::GR64_NOREX_NOSPSubRegClasses
> 0000000000000860 d llvm::X86::GR32_NOREX_NOSPSuperRegClasses
> 0000000000003970 r llvm::X86::GR64_NOREX_NOSPSuperRegClasses
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20110714/1aaab65f/attachment.html>


More information about the llvm-commits mailing list