[llvm-dev] TargetMachine vs LLVMTargetMachine
Hal Finkel via llvm-dev
llvm-dev at lists.llvm.org
Tue Oct 3 14:49:17 PDT 2017
On 10/03/2017 04:42 PM, Eric Christopher wrote:
>
>
> On Tue, Oct 3, 2017 at 2:37 PM Hal Finkel <hfinkel at anl.gov
> <mailto:hfinkel at anl.gov>> wrote:
>
>
> On 10/03/2017 04:30 PM, Eric Christopher wrote:
>>
>>
>> On Tue, Oct 3, 2017 at 8:54 AM Hal Finkel via llvm-dev
>> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>
>>
>> On 10/02/2017 10:57 PM, Matthias Braun via llvm-dev wrote:
>>> The distinction between the LLVMTargetMachine and
>>> TargetMachine classes has become somewhat muddy recently. So
>>> I created:
>>>
>>> https://reviews.llvm.org/D38482
>>>
>>> to clean things up. During review it was noted that we may
>>> rather merge the two instead which looks like this:
>>>
>>> https://reviews.llvm.org/D38489
>>>
>>> We really should choose one of the two over the status quo.
>>> Some points for the discussion:
>>>
>>> - I am not aware of any target that is actually implementing
>>> TargetMachine only but not LLVMTargetMachine (I assume the C
>>> backend used to do it before it was removed)
>>> - Even when merging the two, I believe it is still possible
>>> to implement a target without linking to lib/CodeGen by
>>> returning nullptr for the various methods related to CodeGen.
>>
>> If this is true, then it seems like we don't lose anything
>> from doing this (and the code gets cleaner). We don't
>> currently have anything in tree that
>>
>>
>> This was my suggestion of yesterday.
>>
>> motivates the current split. It does seem useful to retain
>> the ability to have a direct-from-the-IR backend (mostly for
>> translation into another IR).
>>
>>
>> I'm dubious of this need, but as long as it doesn't add any
>> overhead to the resultant code I'm good.
>
> The other thing that I asked in the other review thread, which
> I'll repeat here, is: does GlobalISel further reduce the
> motivation for this? The primary reason, as I understand it, for
> needing this kind of "direct" translation is to avoid going
> through type legalization. This can be important for software
> targeting FPGAs, for example, because the hardware can deal with
> arbitrary bit widths. With GlobalISel, can you go into CodeGen
> effectively without any legalization and then go on from there (if
> one needed such a thing)?
>
>
> Not right now, no.
Okay.
> That said I'm uncertain how much we particularly care about keeping
> two classes here when we can just change how initialization works to
> provide nullptr versions of the local bits rather than having a
> separate overhead class.
I agree. I'm already sold on merging them. Having to provide functions
returning nullptr seems like a small overhead.
-Hal
>
> -eric
>
> -Hal
>
>
>>
>> -eric
>>
>> -Hal
>>
>>
>>> - The split would give some notion of an internal CodeGen
>>> interface and an external interface visible to
>>> frontend/middleend etc.
>>> - The code gets simpler when merging the two and we have to
>>> document/explain less.
>>>
>>> - Matthias
>>>
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>> --
>> Hal Finkel
>> Lead, Compiler Technology and Programming Languages
>> Leadership Computing Facility
>> Argonne National Laboratory
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
> --
> Hal Finkel
> Lead, Compiler Technology and Programming Languages
> Leadership Computing Facility
> Argonne National Laboratory
>
--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171003/46cf701d/attachment.html>
More information about the llvm-dev
mailing list