[llvm-commits] CVS: llvm/lib/VMCore/Constants.cpp
Reid Spencer
rspencer at reidspencer.com
Tue Feb 27 11:34:52 PST 2007
On Tue, 2007-02-27 at 09:10 -0800, Chris Lattner wrote:
> > Index: llvm/lib/VMCore/Constants.cpp
> > diff -u llvm/lib/VMCore/Constants.cpp:1.222 llvm/lib/VMCore/
> > Constants.cpp:1.223
> > --- llvm/lib/VMCore/Constants.cpp:1.222 Mon Feb 26 21:05:06 2007
> > +++ llvm/lib/VMCore/Constants.cpp Tue Feb 27 01:57:53 2007
> > @@ -118,7 +118,7 @@
> > if (ITy->getBitWidth() == 1)
> > return ConstantInt::getTrue();
> > else
> > - return ConstantInt::get(Ty, int64_t(-1));
> > + return ConstantInt::get(Ty, APInt::getAllOnesValue(ITy-
> > >getBitWidth()));
> > return 0;
> > }
>
> The special case for 'i1' can be removed, right?
I assumed the special case was because of this mess:
> ConstantInt *ConstantInt::TheTrueVal = 0;
> ConstantInt *ConstantInt::TheFalseVal = 0;
>
> namespace llvm {
> void CleanupTrueFalse(void *) {
> ConstantInt::ResetTrueFalse();
> }
> }
>
> static ManagedCleanup<llvm::CleanupTrueFalse> TrueFalseCleanup;
>
> ConstantInt *ConstantInt::CreateTrueFalseVals(bool WhichOne) {
> assert(TheTrueVal == 0 && TheFalseVal == 0);
> TheTrueVal = get(Type::Int1Ty, 1);
> TheFalseVal = get(Type::Int1Ty, 0);
>
> // Ensure that llvm_shutdown nulls out TheTrueVal/TheFalseVal.
> TrueFalseCleanup.Register();
>
> return WhichOne ? TheTrueVal : TheFalseVal;
> }
why do we need this?
>
> -Chris
More information about the llvm-commits
mailing list