[llvm-commits] [llvm] r73095 - in /llvm/trunk: include/llvm/Target/TargetMachine.h include/llvm/Target/TargetOptions.h lib/Target/ARM/ARMCallingConv.td lib/Target/ARM/ARMISelDAGToDAG.cpp lib/Target/ARM/ARMISelLowering.cpp lib/Target/ARM/ARMRegist

Devang Patel devang.patel at gmail.com
Thu Jun 11 17:06:28 PDT 2009


On Thu, Jun 11, 2009 at 10:38 AM, Evan Cheng<evan.cheng at apple.com> wrote:
>
> On Jun 11, 2009, at 12:10 AM, Sandeep Patel wrote:
>
>> On Wed, Jun 10, 2009 at 9:43 PM, Evan Cheng<evan.cheng at apple.com>
>> wrote:
>>>
>>> On Jun 8, 2009, at 3:53 PM, Anton Korobeynikov wrote:
>>>
>>>> Author: asl
>>>> Date: Mon Jun  8 17:53:56 2009
>>>> New Revision: 73095
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=73095&view=rev
>>>> Log:
>>>> The attached patches implement most of the ARM AAPCS-VFP hard float
>>>> ABI. The missing piece is support for putting "homogeneous
>>>> aggregates"
>>>> into registers.
>>>>
>>>> Patch by Sandeep Patel!
>>>>
>>>> Modified:
>>>>    llvm/trunk/include/llvm/Target/TargetMachine.h
>>>>    llvm/trunk/include/llvm/Target/TargetOptions.h
>>>>    llvm/trunk/lib/Target/ARM/ARMCallingConv.td
>>>>    llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp
>>>>    llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
>>>>    llvm/trunk/lib/Target/ARM/ARMRegisterInfo.td
>>>>    llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp
>>>>    llvm/trunk/lib/Target/TargetMachine.cpp
>>>>    llvm/trunk/lib/Target/X86/X86Subtarget.cpp
>>>>
>>>> Modified: llvm/trunk/include/llvm/Target/TargetMachine.h
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetMachine.h?rev=73095&r1=73094&r2=73095&view=diff
>>>>
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> ====================================================================
>>>> --- llvm/trunk/include/llvm/Target/TargetMachine.h (original)
>>>> +++ llvm/trunk/include/llvm/Target/TargetMachine.h Mon Jun  8
>>>> 17:53:56 2009
>>>> @@ -78,6 +78,14 @@
>>>>   };
>>>> }
>>>
>>>>
>>>>
>>>> +namespace FloatABI {
>>>> +  enum ABIType {
>>>> +    Default,
>>>> +    Soft,
>>>> +    Hard
>>>> +  };
>>>> +}
>>>
>>> Some comments?
>>
>> Will do.
>>
>>>>
>>>> +
>>>> //
>>>> =
>>>> =
>>>> =
>>>> ----------------------------------------------------------------------=
>>>> ==//
>>>> ///
>>>> /// TargetMachine - Primary interface to the complete machine
>>>> description for
>>>> @@ -88,7 +96,7 @@
>>>>   TargetMachine(const TargetMachine &);   // DO NOT IMPLEMENT
>>>>   void operator=(const TargetMachine &);  // DO NOT IMPLEMENT
>>>> protected: // Can only create subclasses.
>>>> -  TargetMachine() : AsmInfo(0) { }
>>>> +  TargetMachine();
>>>>
>>>>   /// getSubtargetImpl - virtual method implemented by subclasses
>>>> that returns
>>>>   /// a reference to that target's TargetSubtarget-derived member
>>>> variable.
>>>>
>>>> Modified: llvm/trunk/include/llvm/Target/TargetOptions.h
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetOptions.h?rev=73095&r1=73094&r2=73095&view=diff
>>>>
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> =
>>>> ====================================================================
>>>> --- llvm/trunk/include/llvm/Target/TargetOptions.h (original)
>>>> +++ llvm/trunk/include/llvm/Target/TargetOptions.h Mon Jun  8
>>>> 17:53:56 2009
>>>> @@ -73,6 +73,14 @@
>>>>   /// target FP instructions.
>>>>   extern bool UseSoftFloat;
>>>>
>>>> +  /// FloatABIType - This setting is set by -float-abi=xxx option
>>>> is specfied
>>>> +  /// on the command line. This setting may either be Default,
>>>> Soft, or Hard.
>>>> +  /// Default selects the target's default behavior. Soft selects
>>>> the ABI for
>>>> +  /// UseSoftFloat, but does not inidcate that FP hardware may not
>>>> be used.
>>>> +  /// Such a combination is unfortunately popular (e.g. arm-apple-
>>>> darwin).
>>>> +  /// Hard presumes that the normal FP ABI is used.
>>>> +  extern FloatABI::ABIType FloatABIType;
>>>
>>> Can we add a module note for this?
>>
>> Just checking my understanding: you want to extend the IR in
>> llvm::bitc::ModuleCodes with something new for this?
>
> Sorry, I meant adding a note in llvm bitcode. It will be similar to
> the function notes in llvm/Attributes.h. Some of these which impact
> all the functions in the modules should be module notes rather than
> function notes. Devang, have you introduced them yet?

Not yet. We have not run into a case where we absolutely need module
level attributes.
-
Devang




More information about the llvm-commits mailing list