[llvm-commits] CVS: llvm/lib/ExecutionEngine/ExecutionEngine.cpp
Reid Spencer
rspencer at reidspencer.com
Thu Jan 18 15:04:03 PST 2007
On Thu, 2007-01-18 at 13:49 -0800, Chris Lattner wrote:
> Please just use uint64_t BitMask = Ty->getIntegerTypeMask();
Good idea. This is changing to IntegerType::getBitMask(). I'm testing
that set of changes now and I'll include this fix to ExecutionEngine
when its time to commit.
Thanks,
Reid.
>
> Thanks,
>
> -Chris
>
>
> On Jan 18, 2007, at 10:01 AM, Reid Spencer wrote:
>
> >
> >
> > Changes in directory llvm/lib/ExecutionEngine:
> >
> > ExecutionEngine.cpp updated: 1.99 -> 1.100
> > ---
> > Log message:
> >
> > Fix a regression in the last patch. When constructing a BitMask, be
> > careful
> > not to overflow 64-bits and end up with a 0 mask. This caused i64
> > values to
> > always be stored as 0 with lots of consequential damage to nightly
> > test.
> >
> >
> > ---
> > Diffs of the changes: (+4 -0)
> >
> > ExecutionEngine.cpp | 4 ++++
> > 1 files changed, 4 insertions(+)
> >
> >
> > Index: llvm/lib/ExecutionEngine/ExecutionEngine.cpp
> > diff -u llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.99 llvm/lib/
> > ExecutionEngine/ExecutionEngine.cpp:1.100
> > --- llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.99 Wed Jan 17
> > 19:24:02 2007
> > +++ llvm/lib/ExecutionEngine/ExecutionEngine.cpp Thu Jan 18
> > 12:01:32 2007
> > @@ -457,6 +457,8 @@
> > case Type::IntegerTyID: {
> > unsigned BitWidth = cast<IntegerType>(Ty)->getBitWidth();
> > uint64_t BitMask = (1ull << BitWidth) - 1;
> > + if (BitWidth >= 64)
> > + BitMask = (uint64_t)-1;
> > GenericValue TmpVal = Val;
> > if (BitWidth <= 8)
> > Ptr->Untyped[0] = Val.Int8Val & BitMask;
> > @@ -513,6 +515,8 @@
> > case Type::IntegerTyID: {
> > unsigned BitWidth = cast<IntegerType>(Ty)->getBitWidth();
> > uint64_t BitMask = (1ull << BitWidth) - 1;
> > + if (BitWidth >= 64)
> > + BitMask = (uint64_t)-1;
> > GenericValue TmpVal = Val;
> > if (BitWidth <= 8)
> > Ptr->Untyped[0] = Val.Int8Val & BitMask;
> >
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list