On Tue, 3 Jul 2007, Ben Chambers wrote:> Is there a pass that will remove constant expressions from appearing
> within other expressions? For instance it would convert the call:
> %tmp20 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x
> i8]* @.str, i32 0, i32 0), i32 %tmp18 ) ; <i32> [#uses=0]
>
> Into:
> %tmpFresh = getelementptr [4 x i8]* @.str, i32 0, i32 0 ; <i8*>
[#uses = 1]
> %tmp20 = tail call i32 (i8*, ...)* @printf( i8* %tmpFresh, i32
> %tmp18 ) ; <i32> [#uses=0]
>
> (Ideally it would do this as an .s -> .s transformation and be
> accessible through a tool like opt).
We used to have a 'lowerconstantexpr' pass in transforms/scalar. I
don't
know how to see deleted files in svn though.
-Chris
--
http://nondot.org/sabre/
http://llvm.org/