[llvm-commits] CVS: llvm/include/llvm/ExecutionEngine/GenericValue.h
Chris Lattner
clattner at apple.com
Sat Mar 3 20:11:08 PST 2007
On Mar 3, 2007, at 7:50 PM, Reid Spencer wrote:
> On Sat, 2007-03-03 at 19:45 -0800, Chris Lattner wrote:
>>>> 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.
>>
>> It would increase the memory use of the *interpreter*, but nothing
>> else. The interpreter is already slow.
>
> The JIT makes use of the fields you're intending to delete as well. SO
> does ExecutionEngine (on each load and store). Sure you want to
> sacrifice JIT speed too?
Yes. The JIT does not use them for anything performance sensitive.
>>>> Having the interpreter have its own set of
>>>> constant folding logic seems wrong.
>>>
>>> Where does it have that?
>>
>> All of the 'execute*' methods. E.g. to 'interpret' a binary or.
>
> If its given a ConstantExpr that isn't folded automatically, what's it
> supposed to do?
I'm not suggesting that Interpreter::getConstantExprValue change.
I'm suggesting that things like 'IMPLEMENT_UNSIGNED_BINOP' would drop
the
Int8/Int16/Int32/Int64 cases.
Note that the interpreter is currently broken for sizes like int33.
-Chris
More information about the llvm-commits
mailing list