----- Original Message -----
> From: "Tobias Grosser" <[email protected]>
> To: "Hal Finkel" <[email protected]>
> Cc: [email protected], 
> [email protected]
> Sent: Wednesday, December 5, 2012 4:37:01 PM
> Subject: Re: [cfe-commits] [PATCH] Invariants (and Assume Aligned) - Clang
> 
> On 12/05/2012 11:29 PM, Hal Finkel wrote:
> > ----- Original Message -----
> >> From: "Tobias Grosser"<[email protected]>
> >> To:
> >> [email protected]
> >> Cc: [email protected], [email protected]
> >> Sent: Wednesday, December 5, 2012 4:04:54 PM
> >> Subject: Re: [cfe-commits] [PATCH] Invariants (and Assume Aligned)
> >> - Clang
> >>
> >> On 12/05/2012 09:39 PM, [email protected] wrote:
> >>>     Test cases have been enhanced. We now use @llvm.invariant.
> >>
> >>> Index: test/CodeGen/builtin-assume.c
> >>> ===================================================================
> >>> --- /dev/null
> >>> +++ test/CodeGen/builtin-assume.c
> >>> @@ -0,0 +1,9 @@
> >>> +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o
> >>> -
> >>> %s | FileCheck %s
> >>> +
> >>> +// CHECK: @test1
> >>> +int test1(int *a) {
> >>> +// CHECK: call void @llvm.invariant(i1
> >>> +  __builtin_assume(a != 0);
> >>> +  return a[0];
> >>
> >> The second check line looks incomplete? Is this intended?
> >
> > Yes. I did not want to match the variable name specifying the
> > condition.
> >
> > [For some reason, I can't see this comment in the web interface].
> 
> I have no account for the web interface, but hoped the emails would
> show
> up there anyway. Is this not the case?

It seems not.

> 
> Would you mind adding the entire test case (with some regexp magic)
> or
> in case this is too much work can you add an example to the
> documentation?

Sure. I'll try harder ;)

> Does __builtin_assume() basically take an i1 as an
> argument and allows an arbitrary set of instructions that lead to
> this
> i1. Can I have something, like
> 
> __builtin_assume(clamp(0, x, 100) >= 0);
> __builtin_assume(clamp(0, x, 100) <= 100);
> 
> to pass information about the behavior of the function clamp?

Yes; that's the idea. Currently, the only infrastructure I have is to apply 
this information to pointer alignments. In the future, the idea is to integrate 
this with ScalarEvolution, etc.

Thanks again,
Hal

> 
> I think this is a very nice feature, which will be very useful to
> polly.
> 
> Cheers
> Tobi
> 

-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to