[llvm] r206211 - [ARM64][MC] Set the default CPU to cyclone when initilizating the MC layer.
Quentin Colombet
qcolombet at apple.com
Mon Apr 14 17:37:05 PDT 2014
I’ve changed the default to generic in r206228.
Thanks,
-Quentin
On Apr 14, 2014, at 3:16 PM, Eric Christopher <echristo at gmail.com> wrote:
> Let's go with the "generic" x86 model. It looks like ARM64 does have a
> definition for that.
>
> -eric
>
> On Mon, Apr 14, 2014 at 3:13 PM, Quentin Colombet <qcolombet at apple.com> wrote:
>> Well, in fact, I am not sure what is the best approach here.
>>
>> ARM and X86 already seem to duplicate this logic somehow, see below.
>>
>> So if we are about to duplicate something I’d prefer to keep it minimal like
>> in the current patch.
>>
>> What do you think?
>>
>> ** X86 **
>>
>> — X86Subtarget.cpp:
>> void X86Subtarget::resetSubtargetFeatures(StringRef CPU, StringRef FS) {
>> std::string CPUName = CPU;
>> if (CPUName.empty())
>> CPUName = "generic";
>>
>> — X86MCTargetDesc.cpp:
>> MCSubtargetInfo *X86_MC::createX86MCSubtargetInfo(StringRef TT, StringRef
>> CPU,
>> StringRef FS) {
>> […]
>> std::string CPUName = CPU;
>> if (CPUName.empty()) {
>> #if defined(i386) || defined(__i386__) || defined(__x86__) ||
>> defined(_M_IX86)\
>> || defined(__x86_64__) || defined(_M_AMD64) || defined (_M_X64)
>> CPUName = sys::getHostCPUName();
>> #else
>> CPUName = "generic";
>> #endif
>> }
>>
>>
>> ** ARM **
>>
>> — ARMSubtarget.cpp:
>> void ARMSubtarget::resetSubtargetFeatures(StringRef CPU, StringRef FS) {
>> if (CPUString.empty()) {
>> if (isTargetIOS() && TargetTriple.getArchName().endswith("v7s"))
>> // Default to the Swift CPU when targeting armv7s/thumbv7s.
>> CPUString = "swift";
>> else
>> CPUString = "generic";
>> }
>>
>> — ARMMCTargetDesc.cpp:
>> std::string ARM_MC::ParseARMTriple(StringRef TT, StringRef CPU) {
>> [...]
>> bool NoCPU = CPU == "generic" || CPU.empty();
>> std::string ARMArchFeature;
>> if (Idx) {
>> unsigned SubVer = TT[Idx];
>> if (SubVer == '8') {
>> if (NoCPU)
>> // v8a: FeatureDB, FeatureFPARMv8, FeatureNEON, FeatureDSPThumb2,
>> // FeatureMP, FeatureHWDiv, FeatureHWDivARM, FeatureTrustZone,
>> // FeatureT2XtPk, FeatureCrypto, FeatureCRC
>> ARMArchFeature =
>> "+v8,+db,+fp-armv8,+neon,+t2dsp,+mp,+hwdiv,+hwdiv-arm,"
>> "+trustzone,+t2xtpk,+crypto,+crc";
>> else
>> // Use CPU to figure out the exact features
>> ARMArchFeature = "+v8”;
>> […]
>>
>> -Quentin
>>
>> On Apr 14, 2014, at 3:02 PM, Eric Christopher <echristo at gmail.com> wrote:
>>
>> Thanks!
>>
>> I'd probably see the ARM one as closer... it doesn't cope well if
>> there's no cpu given it doesn't look like :)
>>
>> -eric
>>
>> On Mon, Apr 14, 2014 at 3:00 PM, Quentin Colombet <qcolombet at apple.com>
>> wrote:
>>
>> Sorry, I thought I was doing the same thing as X86 here.
>> I’ve been misled by this sequence:
>> MCSubtargetInfo *X86_MC::createX86MCSubtargetInfo(StringRef TT, StringRef
>> CPU,
>> StringRef FS) {
>> [...]
>> std::string CPUName = CPU;
>> if (CPUName.empty()) {
>> #if defined(i386) || defined(__i386__) || defined(__x86__) ||
>> defined(_M_IX86)\
>> || defined(__x86_64__) || defined(_M_AMD64) || defined (_M_X64)
>> CPUName = sys::getHostCPUName();
>> #else
>> CPUName = "generic";
>> #endif
>> }
>>
>> Let me rework my copy then!
>>
>> -Quentin
>>
>> On Apr 14, 2014, at 2:42 PM, Eric Christopher <echristo at gmail.com> wrote:
>>
>> Uh, what?
>>
>> How about taking the same code from the ARM or X86 backends? Or something
>> else?
>>
>> -eric
>>
>> On Mon, Apr 14, 2014 at 2:25 PM, Quentin Colombet <qcolombet at apple.com>
>> wrote:
>>
>> Author: qcolombet
>> Date: Mon Apr 14 16:25:53 2014
>> New Revision: 206211
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=206211&view=rev
>> Log:
>> [ARM64][MC] Set the default CPU to cyclone when initilizating the MC layer.
>> This matches that ARM64Subtarget does for now.
>>
>> This is related to <rdar://problem/16573920>
>>
>> Modified:
>> llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64MCTargetDesc.cpp
>>
>> Modified: llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64MCTargetDesc.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64MCTargetDesc.cpp?rev=206211&r1=206210&r2=206211&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64MCTargetDesc.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/ARM64/MCTargetDesc/ARM64MCTargetDesc.cpp Mon Apr
>> 14 16:25:53 2014
>> @@ -43,6 +43,12 @@ static MCInstrInfo *createARM64MCInstrIn
>> static MCSubtargetInfo *createARM64MCSubtargetInfo(StringRef TT, StringRef
>> CPU,
>> StringRef FS) {
>> MCSubtargetInfo *X = new MCSubtargetInfo();
>> +
>> + // FIXME: Make this darwin-only.
>> + if (CPU.empty())
>> + // We default to Cyclone for now, on Darwin.
>> + CPU = "cyclone";
>> +
>> InitARM64MCSubtargetInfo(X, TT, CPU, FS);
>> return X;
>> }
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140414/e4183084/attachment.html>
More information about the llvm-commits
mailing list