similar to: [LLVMdev] Code compaction passes?

Displaying 20 results from an estimated 300 matches similar to: "[LLVMdev] Code compaction passes?"

2008 May 18
4
[LLVMdev] Opaque type usage to represent foreign types
In my project I have a group of foreign types (C++ classes) that I want to use, but don't want to represent as structs within LLVM. For example, for each field in each C++ class I have a setter and getter function that I'd like to use. The setters and getters are "extern C" functions to avoid problems with C++'s name mangling. After going over the documentation it
2008 Feb 13
5
[LLVMdev] Instrumenting virtual function calls
After hacking away at it for a bit, it looks like the mystery function is actually a stub function. The function pointer is coming from a vtable, which gets filled in with pointers to stub functions. Is there any way to do the round trip for a stub function? Two possible solutions come to mind: 1) Modify getGlobalValueAtAddress to work for pointers to stub functions 2) Add a
2009 Aug 28
0
[LLVMdev] andersen's alias analysis
Might I suggest the following patch, because this issue has bite me too? You're lured in by the initial good results from the Andersens alias analysis, only to discover the bugs later on. Robert Zeh On Aug 26, 2009, at 9:11 PM, Chris Lattner wrote: > On Aug 26, 2009, at 6:40 PM, Max Stonebraker wrote: >> Hello, >> >> Does the LLVM Andersens alias analysis handle
2009 Aug 27
2
[LLVMdev] andersen's alias analysis
On Aug 26, 2009, at 6:40 PM, Max Stonebraker wrote: > Hello, > > Does the LLVM Andersens alias analysis handle function pointers > precisely? I ran it and it looks like it says every function points > points to the universal set. Is this what I should expect? Hi Max, I don't know the answer offhand but please keep in mind that the current andersen's pass has many
2008 Feb 13
0
[LLVMdev] Instrumenting virtual function calls
On Feb 12, 2008, at 5:08 PM, Robert Zeh wrote: > After hacking away at it for a bit, it looks like the mystery > function is actually a stub function. You know, I had this lengthy email written to cover all the details and I decided not to send it as I wasn't sure if that was what you were hitting a stub and I didn't want to confuse the issue if it wasn't due to stubs...
2008 Jan 08
2
[LLVMdev] Setting how aggressive the inliner is in 2.1
Is there a way to set how aggressive the inliner pass (createFunctionInliningPass) without going through the command line interface? Is there any reason InlineLimit isn't an argument to the createFunctionInliningPass function? Thanks, Robert
2008 Oct 13
1
[LLVMdev] 2.4 Pre-release (v1) Available for Testing
You're right that LLVM may be left in an unusable state --- I've encountered that problem on my own. However, even a simple exit function would be useful. If, instead of calling abort, LLVM called a function pointer I provided life would be much easier. Even if the function call simply threw up a crash screen life would be better than calling abort. Ideally I'd like to throw
2010 Jan 07
2
[LLVMdev] sqrt
On Jan 7, 2010, at 11:48 AM, Chris Lattner <clattner at apple.com> wrote: > There is a fundamental difference between sqrt() and llvm.sqrt: the > former is defined on negative values and sets errno (on linux). The > later is undefined. Both work well for their stated purpose, > llvm.sqrt should not be slower than sqrt even on linux. Both > llvm.sqrt and sqrt could be much
2008 Oct 13
2
[LLVMdev] aborting on invalid code
On Oct 13, 2008, at 1:07 PM, Chris Lattner wrote: > > Exceptions have a high cost in terms of code size, binary size, and > even a bit of execution time. Also, they don't magically make the > code safe from any error: code has to be designed specifically to use > RAII and other techniques to handle exceptions properly. Reading a C+ > + trade magazines/books about EH topics
2008 Feb 10
2
[LLVMdev] Instrumenting virtual function calls
I'm attempting to instrument virtual function calls in my code. After each virtual call I'm calling my own registerMethod function, with an integer marking the location of the call and a pointer to the function that was called. However, and this is where I get confused, the function pointer doesn't match any of the functions in my module. I'd hoped to call
2008 Jan 08
0
[LLVMdev] Setting how aggressive the inliner is in 2.1
On Mon, 7 Jan 2008, Robert Zeh wrote: > Is there a way to set how aggressive the inliner pass > (createFunctionInliningPass) without going through the command line > interface? Nope. Well, you could call cl::ParseCommandLine yourself (passing in a static array) like llvm-gcc does, but other than that "no". > Is there any reason InlineLimit isn't an argument to the
2008 Jan 12
1
[LLVMdev] Setting how aggressive the inliner is in 2.1
I think this will do the trick: -------------- next part -------------- A non-text attachment was scrubbed... Name: inliner.patch Type: application/octet-stream Size: 2654 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080111/18fad7e6/attachment.obj> -------------- next part -------------- Robert On Jan 8, 2008, at 3:26 PM, Chris Lattner wrote:
2008 Feb 13
0
[LLVMdev] Instrumenting virtual function calls
On Feb 12, 2008, at 5:08 PM, Robert Zeh wrote: > After hacking away at it for a bit, it looks like the mystery function > is actually a stub function. The function pointer is coming from a > vtable, which gets filled in with pointers to stub functions. > > Is there any way to do the round trip for a stub function? Two > possible solutions come to mind: > 1) Modify
2009 Jan 22
1
[LLVMdev] Patch to get llvm compiling with the Intel 11.0.066 compiler
I've been trying to get llvm to compile under windows with the Intel C+ + 11.0.066 compiler without killing the compiler. I filed a bug report with Intel, and Intel says that their compiler has a problem with RecTy and Init being declared with "class" in utils \TableGen\TGParser.h but defined with "struct" in utils\TableGen \Record.h. The attached patch changes
2010 Jan 08
0
[LLVMdev] sqrt
On Jan 7, 2010, at 3:53 PM, Robert A. Zeh wrote: > > On Jan 7, 2010, at 11:48 AM, Chris Lattner <clattner at apple.com> wrote: > >> There is a fundamental difference between sqrt() and llvm.sqrt: the >> former is defined on negative values and sets errno (on linux). The >> later is undefined. Both work well for their stated purpose, >> llvm.sqrt should
2008 Feb 10
0
[LLVMdev] Instrumenting virtual function calls
On Feb 10, 2008, at 5:33 AM, Robert Zeh wrote: > I'm attempting to instrument virtual function calls in my code. > After each virtual call I'm calling my own registerMethod function, > with an integer marking the location of the call and a pointer to > the function that was called. > > However, and this is where I get confused, the function pointer >
2008 Oct 13
0
[LLVMdev] aborting on invalid code
On Oct 13, 2008, at 1:10 PM, Robert Zeh wrote: > > On Oct 13, 2008, at 1:07 PM, Chris Lattner wrote: >> >> Exceptions have a high cost in terms of code size, binary size, and >> even a bit of execution time. Also, they don't magically make the >> code safe from any error: code has to be designed specifically to use >> RAII and other techniques to handle
2008 Mar 08
1
[LLVMdev] Changing the return type for a function after construction
Is there any way to change the return type of a function after constructing one? Thanks, Robert
2009 Aug 27
3
[LLVMdev] alias analysis
Hello, Does the LLVM Andersens alias analysis handle function pointers precisely? I ran it and it looks like it says every function points points to the universal set. Is this what I should expect? Max -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090826/ff8d6c78/attachment.html>
2008 Feb 28
1
[LLVMdev] Are multiple execution engines allowed?
I'm trying to set up some automated testing, and I'd like to have multiple instances of ExecutionEngines, so that the state from the first test doesn't alter the second state. Right now I'm doing something along the lines of: Module *emptyModule = new Module("emptyModule"); ExecutionEngine executionEngine = ExecutionEngine::create(emptyModule);