search for: llvm_function_ret_inf

Displaying 4 results from an estimated 4 matches for "llvm_function_ret_inf".

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 u...
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( ) ;