[llvm-dev] Target triple normalzation through the LLVM C API
Markus Lindström via llvm-dev
llvm-dev at lists.llvm.org
Tue Jul 17 00:17:39 PDT 2018
Hi Paul,
Thanks for your quick feedback!
I've introduced a diff on Phabricator with whitequark as a reviewer: https://reviews.llvm.org/D49414
Regards,
Markus Lindström
Raincode Labs (on behalf of LzLabs)
-----Original Message-----
From: paul.robinson at sony.com <paul.robinson at sony.com>
Sent: Monday, July 16, 2018 19:45
To: Markus Lindström <Markus at raincode.com>
Cc: llvm-dev at lists.llvm.org
Subject: RE: Target triple normalzation through the LLVM C API
Hi Markus,
> -----Original Message-----
> From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of
> Markus Lindström via llvm-dev
> Sent: Monday, July 16, 2018 6:11 AM
> To: llvm-dev at lists.llvm.org
> Subject: [llvm-dev] Target triple normalzation through the LLVM C API
>
> Hello everyone,
>
> First of all, this is my first posting here, so feel free to tell me
> if I'm asking the wrong questions in the wrong place.
It's definitely the right place for this question.
>
> I've discovered that the target triple normalization which used to be
> done at all times on sys::getDefaultTargetTriple() has been removed,
> due to the fact that most users of this function explicitly call
> Triple::normalize() on its result. This has however broken our
> compiler, which is built upon the LLVM C API, which relied on the
> default Windows target triple (x86_64-
> pc-win32 in our case) being normalized to x86_64-pc-windows-msvc. The
> breakage occurs because the X86 target lowering doesn't consider
> x86_64-
> pc-win32 to be an MSVC environment, and it doesn't lower a few
> instructions including SREM_I64 to MSVC equivalents (_allrem in this
> case; we end up with __moddi3 instead).
>
> I believe that we should fix this by allowing to invoke the target
> triple normalization function through the LLVM C API. I would suggest
> adding an LLVMNormalizeTriple function to the C API (in TargetMachine,
> I guess) which would wrap Triple::normalize(). Would this be the right
> way to go about it? If so, we'll propose a patch based on that idea.
It seems quite reasonable to me. You might get different opinions when you post the patch, but it's a good place to start. Make sure to include 'whitequark' as a reviewer, code owner for the C API.
--paulr
>
> Thanks for your help,
>
> Markus Lindström, Raincode Labs (on behalf of LzLabs) E-mail
> markus at raincode.com
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
More information about the llvm-dev
mailing list