[llvm] r224901 - [X86][ISel] Fix a regression I introduced in r224884
Hal Finkel
hfinkel at anl.gov
Tue Jan 6 21:15:32 PST 2015
----- Original Message -----
> From: "H.J. Lu" <hjl.tools at gmail.com>
> To: "Keno Fischer" <kfischer at college.harvard.edu>
> Cc: "Hal Finkel" <hfinkel at anl.gov>, "Commit Messages and Patches for LLVM" <llvm-commits at cs.uiuc.edu>
> Sent: Monday, December 29, 2014 7:22:52 AM
> Subject: Re: [llvm] r224901 - [X86][ISel] Fix a regression I introduced in r224884
>
> On Mon, Dec 29, 2014 at 2:41 AM, Keno Fischer
> <kfischer at college.harvard.edu> wrote:
> > Ok, what's the general rule on whether to include `target triple`
> > and
> > `target datalayout` in the tests? Also, H.J. could you comment on
> > why you
> > recommend omitting it.
> >
> > On Sun, Dec 28, 2014 at 11:06 PM, Hal Finkel <hfinkel at anl.gov>
> > wrote:
> >>
> >> ----- Original Message -----
> >> > From: "Keno Fischer" <kfischer at college.harvard.edu>
> >> > To: llvm-commits at cs.uiuc.edu
> >> > Sent: Sunday, December 28, 2014 9:20:58 AM
> >> > Subject: [llvm] r224901 - [X86][ISel] Fix a regression I
> >> > introduced in
> >> > r224884
> >> >
> >> > Author: kfischer
> >> > Date: Sun Dec 28 09:20:57 2014
> >> > New Revision: 224901
> >> >
> >> > URL: http://llvm.org/viewvc/llvm-project?rev=224901&view=rev
> >> > Log:
> >> > [X86][ISel] Fix a regression I introduced in r224884
> >> >
> >> > The else case ResultReg was not checked for validity.
> >> > To my surprise, this case was not hit in any of the
> >> > existing test cases. This includes a new test cases
> >> > that tests this path.
> >> >
> >> > Also drop the `target triple` declaration from the
> >> > original test as suggested by H.J. Lu, because
> >> > apparently with it the test won't be run on Linux
> >>
> >> No, that's not right. All of the llc tests are run, regardless of
> >> the
> >> host; adding a triple is generally done for better test stability
> >> (so that
>
> Shouldn't it be "target", not "host"? llvm can be configured with
>
> --target=xxx
That's correct. If you don't provide a triple, llc defaults to calling sys::getDefaultTargetTriple(), which essentially returns LLVM_DEFAULT_TARGET_TRIPLE as set by configure/cmake.
>
> >> aspects of the host's configuration don't leak into the code
> >> generation for
> >> the test, potentially making the test behave differently on
> >> different hosts.
> >> If there is any chance that the code generation could be sensitive
> >> to
> >> features of the host's triple in some way relevant to what the
> >> test is
> >> checking, you should definitely have a triple. Otherwise, omitting
> >> it is
> >> fine.
>
> That is true. That is why I asked if the test was target specific
> and my understanding is it was not specific to Darwin.
Okay, so we're on the same page. I just wanted to make sure that everyone understood what was going on.
-Hal
>
> H.J.
> >>
> >> -Hal
> >>
> >> >
> >> > Added:
> >> > llvm/trunk/test/CodeGen/X86/large-code-model-isel.ll
> >> > Modified:
> >> > llvm/trunk/lib/Target/X86/X86FastISel.cpp
> >> > llvm/trunk/test/CodeGen/X86/fast-isel-call-bool.ll
> >> >
> >> > Modified: llvm/trunk/lib/Target/X86/X86FastISel.cpp
> >> > URL:
> >> >
> >> > http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FastISel.cpp?rev=224901&r1=224900&r2=224901&view=diff
> >> >
> >> > ==============================================================================
> >> > --- llvm/trunk/lib/Target/X86/X86FastISel.cpp (original)
> >> > +++ llvm/trunk/lib/Target/X86/X86FastISel.cpp Sun Dec 28
> >> > 09:20:57
> >> > 2014
> >> > @@ -2709,15 +2709,15 @@ bool X86FastISel::fastLowerCall(CallLowe
> >> >
> >> > ResultReg =
> >> > fastEmit_ri(VT, VT, ISD::AND, ResultReg,
> >> > hasTrivialKill(PrevVal), 1);
> >> > -
> >> > - if (!ResultReg)
> >> > - return false;
> >> > } else {
> >> > if (!isTypeLegal(Val->getType(), VT))
> >> > return false;
> >> > ResultReg = getRegForValue(Val);
> >> > }
> >> >
> >> > + if (!ResultReg)
> >> > + return false;
> >> > +
> >> > ArgRegs.push_back(ResultReg);
> >> > OutVTs.push_back(VT);
> >> > }
> >> >
> >> > Modified: llvm/trunk/test/CodeGen/X86/fast-isel-call-bool.ll
> >> > URL:
> >> >
> >> > http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fast-isel-call-bool.ll?rev=224901&r1=224900&r2=224901&view=diff
> >> >
> >> > ==============================================================================
> >> > --- llvm/trunk/test/CodeGen/X86/fast-isel-call-bool.ll
> >> > (original)
> >> > +++ llvm/trunk/test/CodeGen/X86/fast-isel-call-bool.ll Sun Dec
> >> > 28
> >> > 09:20:57 2014
> >> > @@ -1,8 +1,7 @@
> >> > -; RUN: llc < %s -fast-isel -mcpu=core2 -O1 | FileCheck %s
> >> > +; RUN: llc < %s -fast-isel -mcpu=core2 -march=x86-64 -O1 |
> >> > FileCheck
> >> > %s
> >> > ; See PR21557
> >> >
> >> > target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
> >> > -target triple = "x86_64-apple-darwin14.0.0"
> >> >
> >> > declare i64 @bar(i1)
> >> >
> >> >
> >> > Added: llvm/trunk/test/CodeGen/X86/large-code-model-isel.ll
> >> > URL:
> >> >
> >> > http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/large-code-model-isel.ll?rev=224901&view=auto
> >> >
> >> > ==============================================================================
> >> > --- llvm/trunk/test/CodeGen/X86/large-code-model-isel.ll (added)
> >> > +++ llvm/trunk/test/CodeGen/X86/large-code-model-isel.ll Sun Dec
> >> > 28
> >> > 09:20:57 2014
> >> > @@ -0,0 +1,13 @@
> >> > +; RUN: llc < %s -code-model=large -mcpu=core2 -march=x86-64 -O0
> >> > |
> >> > FileCheck %s
> >> > +
> >> > +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
> >> > +
> >> > + at .str10 = external unnamed_addr constant [2 x i8], align 1
> >> > +
> >> > +define void @foo() {
> >> > +; CHECK-LABEL: foo:
> >> > +entry:
> >> > +; CHECK: callq
> >> > + %call = call i64* undef(i64* undef, i8* getelementptr
> >> > inbounds ([2
> >> > x i8]* @.str10, i32 0, i32 0))
> >> > + ret void
> >> > +}
> >> >
> >> >
> >> > _______________________________________________
> >> > llvm-commits mailing list
> >> > llvm-commits at cs.uiuc.edu
> >> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> >> >
> >>
> >> --
> >> Hal Finkel
> >> Assistant Computational Scientist
> >> Leadership Computing Facility
> >> Argonne National Laboratory
> >
> >
>
>
>
> --
> H.J.
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-commits
mailing list