[llvm-commits] [llvm] r106953 - /llvm/trunk/test/Transforms/PartialSpecialize/two-specializations.ll

Benjamin Kramer benny.kra at googlemail.com
Sat Jun 26 12:44:49 PDT 2010


On 26.06.2010, at 20:47, Kenneth Uildriks wrote:

Hi Kenneth,

> Author: kennethuil
> Date: Sat Jun 26 13:47:40 2010
> New Revision: 106953
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=106953&view=rev
> Log:
> Partial specialization test should not depend on the order of specialization operations or the names assigned to the specialized functions
> 
> Modified:
>    llvm/trunk/test/Transforms/PartialSpecialize/two-specializations.ll
> 
> Modified: llvm/trunk/test/Transforms/PartialSpecialize/two-specializations.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/PartialSpecialize/two-specializations.ll?rev=106953&r1=106952&r2=106953&view=diff
> ==============================================================================
> --- llvm/trunk/test/Transforms/PartialSpecialize/two-specializations.ll (original)
> +++ llvm/trunk/test/Transforms/PartialSpecialize/two-specializations.ll Sat Jun 26 13:47:40 2010
> @@ -1,7 +1,7 @@
> ; If there are two specializations of a function, make sure each callsite
> ; calls the right one.
> ;
> -; RUN: opt -S -partialspecialization %s | FileCheck %s
> +; RUN: opt -S -partialspecialization %s | opt -S -inline %s | FileCheck %s

this wont work, the second opt call doesn't read from stdin. Furthermore the test
still passes without even applying partialspecialization, rendering it useless.

IMHO the partial specialization pass should be fixed to produce deterministic
output across all platforms. It probably depends on the order of pointers or
the elements in a DenseMap somewhere.

> declare void @callback1()
> declare void @callback2()
> 
> @@ -14,13 +14,13 @@
> {
> Entry:
> ; CHECK: Entry
> -; CHECK-NEXT: call void @UseCallback1()
> -; CHECK-NEXT: call void @UseCallback1()
> -; CHECK-NEXT: call void @UseCallback2()
> -; CHECK-NEXT: call void @UseCallback(void ()* %pNonConstCallback)
> -; CHECK-NEXT: call void @UseCallback1()
> -; CHECK-NEXT: call void @UseCallback2()
> -; CHECK-NEXT: call void @UseCallback2()
> +; CHECK-NEXT: call void @callback1()
> +; CHECK-NEXT: call void @callback1()
> +; CHECK-NEXT: call void @callback2()
> +; CHECK-NEXT: call void %pNonConstCallback()
> +; CHECK-NEXT: call void @callback1()
> +; CHECK-NEXT: call void @callback2()
> +; CHECK-NEXT: call void @callback2()
>   call void @UseCallback(void()* @callback1)
>   call void @UseCallback(void()* @callback1)
>   call void @UseCallback(void()* @callback2)
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list