----- 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
