Displaying 4 results from an estimated 4 matches for "llvm_function_ret_infer".
2008 Sep 16
2
[LLVMdev] missed optimizations
..., i32 3, i32 55 ; <i32> [#uses=1]
ret i32 %retval
}
This kind of transformation isn't currently done by LLVM (note that here
this pass is only removing case statements. other transformations are not of
my responsibility :).
The patch is available at
http://web.ist.utl.pt/nuno.lopes/llvm_function_ret_infer.txt
I would love to ear some feedback, so that this pass can eventually be
merged to the LLVM tree. In particular I'm not sure if there's a better way
to track the possible return values of each function (e.g. is there any code
that I can reuse?)
Thanks,
Nuno
2008 Sep 16
0
[LLVMdev] missed optimizations
...noplopes at sapo.pt> wrote:
> Hi,
> This kind of transformation isn't currently done by LLVM (note that here
> this pass is only removing case statements. other transformations are not of
> my responsibility :).
> The patch is available at
> http://web.ist.utl.pt/nuno.lopes/llvm_function_ret_infer.txt
> I would love to ear some feedback, so that this pass can eventually be
> merged to the LLVM tree. In particular I'm not sure if there's a better way
> to track the possible return values of each function (e.g. is there any code
> that I can reuse?)
AnalyzeFunction can use...
2008 Sep 05
0
[LLVMdev] missed optimizations
On Thu, Sep 4, 2008 at 8:39 AM, Nuno Lopes <nunoplopes at sapo.pt> wrote:
> Hi,
>
> I have two questions about optimizations performed by llvm.
>
> Consider these simple functions:
> int x(int b) { return b?4:6; }
> int y() { return x(0); }
>
> int x2() { return 5; }
> int y2() { return x2(); }
>
> the optimized bitcode (with clang + opt
2008 Sep 04
5
[LLVMdev] missed optimizations
Hi,
I have two questions about optimizations performed by llvm.
Consider these simple functions:
int x(int b) { return b?4:6; }
int y() { return x(0); }
int x2() { return 5; }
int y2() { return x2(); }
the optimized bitcode (with clang + opt -std-compiler-opts) is:
define i32 @y(...) nounwind {
entry:
ret i32 6
}
define i32 @y2(...) nounwind {
entry:
%call = call i32 (...)* @x2( ) ;