[llvm-commits] CVS: llvm/include/llvm/ExecutionEngine/GenericValue.h

Reid Spencer rspencer at reidspencer.com
Sat Mar 3 16:52:42 PST 2007


On Sat, 2007-03-03 at 16:22 -0800, Chris Lattner wrote:
> On Mar 3, 2007, at 4:16 PM, Reid Spencer wrote:
> > On Sat, 2007-03-03 at 13:07 -0800, Chris Lattner wrote:
> >> On Mar 2, 2007, at 11:37 PM, Reid Spencer wrote:
> >>> Changes in directory llvm/include/llvm/ExecutionEngine:
> >>> GenericValue.h updated: 1.9 -> 1.10
> >>> ---
> >>> Log message:
> >>>
> >>> Add APIntVal as a possible GenericeValue.
> >>
> >> Shouldn't APInt eliminate all of the other, smaller, integers?
> >
> > Not if you want to retain any kind of speed in LLI. Its slow enough,
> > didn't want to slow it down more. Note that because GenericValue is a
> > union I have to make the APInt member a pointer, which means a memory
> > allocation. Pretty certain we don't want a memory allocation on every
> > arithmetic operation.
> 
> Ok, could we make GV not be a union?  Or a struct with an APInt and  
> union of other things?

I thought about that, and started to implement it. That involves a 50%
increase in memory consumption. Its already a big enough hog.

> 
> To me, the interpreter is ideally as simple as possible, it shouldn't  
> try to be performant. 

Sure, but it should also not be grossly wasteful.

>  Having the interpreter have its own set of  
> constant folding logic seems wrong.

Where does it have that?

> 
> -Chris




More information about the llvm-commits mailing list