[cfe-dev] Is it possible to select UnknownArch through command line in clang?
Zvonimir Rakamaric
zvonimir at cs.utah.edu
Tue May 27 08:30:01 PDT 2014
Ok, I invested some time looking into this issue...
Here is the update I propose in clang/lib/basic/Targets.cpp:
static TargetInfo *AllocateTarget(const llvm::Triple &Triple) {
llvm::Triple::OSType os = Triple.getOS();
switch (Triple.getArch()) {
default:
return NULL;
// Add this case to support UnknownArch
case llvm::Triple::UnknownArch:
return new X86_64TargetInfo(Triple);
case llvm::Triple::xcore:
return new XCoreTargetInfo(Triple);
Please comment... This works fine on my regressions, and I suspect it
should work fine on clang regressions too.
Now, is there any chance this update could be pushed into the main
clang trunk so that unknown architecture is supported?
This is really important to us, and releasing a patch for clang with
SMACK verifier would be a very inconvenient solution.
Thanks a lot!
Best,
-- Zvonimir
--
http://zvonimir.info
http://soarlab.org/
On Fri, May 23, 2014 at 6:36 PM, Nikola Smiljanic <popizdeh at gmail.com> wrote:
> Looking at Driver.cpp, passing unknown as Arch is treated as an error. Not
> sure if hacking this check would solve your problem or explode later.
>
>
> On Sat, May 24, 2014 at 2:06 AM, Zvonimir Rakamaric <zvonimir at cs.utah.edu>
> wrote:
>>
>> Not really...
>>
>> My question is a follow-up on this:
>> http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-May/072986.html
>>
>> I figured out how to turn off coercion by hacking into clang and
>> adding one line that selects DefaultTargetCodeGenInfo (which does not
>> do coercion) by default. Now, this is a hacky solution that requires
>> distributing this weird patch for clang with my tool (SMACK verifier).
>>
>> So I wonder if the same thing could somehow be achieved through
>> command line. I tried something like:
>> clang --target=unknown-unknown-linux-gnu simple.c
>> but that throws an error.
>>
>> Thanks!
>>
>>
>> --
>> http://zvonimir.info
>> http://soarlab.org/
>>
>>
>> On Fri, May 23, 2014 at 2:13 AM, Jonathan Roelofs
>> <jonathan at codesourcery.com> wrote:
>> > This might be me answering the question you're trying to ask, but not
>> > the
>> > one you're specifically asking.... does '-S -emit-llvm' do what you want
>> > to
>> > do?
>> >
>> > Jon
>> >
>> >
>> > On 5/22/14, 6:12 PM, Zvonimir Rakamaric wrote:
>> >>
>> >> Hi all,
>> >>
>> >> Quick background story: I would like to select
>> >> DefaultTargetCodeGenInfo when generating LLVM IR for a project of
>> >> mine. And as far as I could figure out, that could be accomplished by
>> >> selecting UnknownArch as the target architecture.
>> >>
>> >> What I could not figure out was how to set UnknownArch from the
>> >> command line using --target or something like that.
>> >>
>> >> Invoking clang like this:
>> >> clang --target=x86_64-unknown-linux-gnu simple.c
>> >> is fine.
>> >>
>> >> But for this:
>> >> clang --target=unknown-unknown-linux-gnu simple.c
>> >>
>> >> I get an error:
>> >> error: unknown target triple 'unknown-unknown-linux-gnu', please use
>> >> -triple or -arch
>> >>
>> >> It would really be awesome if UnknownArch could somehow be selected
>> >> from the command line. Is that possible? Am I missing something?
>> >>
>> >> Thanks!
>> >> -- Zvonimir
>> >> _______________________________________________
>> >> cfe-dev mailing list
>> >> cfe-dev at cs.uiuc.edu
>> >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>> >>
>> >
>> > --
>> > Jon Roelofs
>> > jonathan at codesourcery.com
>> > CodeSourcery / Mentor Embedded
>> >
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>
More information about the cfe-dev
mailing list