[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