diff options
Diffstat (limited to 'lib/Transforms/Scalar/RewriteStatepointsForGC.cpp')
| -rw-r--r-- | lib/Transforms/Scalar/RewriteStatepointsForGC.cpp | 22 | 
1 files changed, 11 insertions, 11 deletions
| diff --git a/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp index 391e43f79121e..0de2bc72b5225 100644 --- a/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp +++ b/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp @@ -401,7 +401,7 @@ namespace {  /// defining value.  The 'base defining value' for 'Def' is the transitive  /// closure of this relation stopping at the first instruction which has no  /// immediate base defining value.  The b.d.v. might itself be a base pointer, -/// but it can also be an arbitrary derived pointer.  +/// but it can also be an arbitrary derived pointer.  struct BaseDefiningValueResult {    /// Contains the value which is the base defining value.    Value * const BDV; @@ -427,13 +427,13 @@ static BaseDefiningValueResult findBaseDefiningValue(Value *I);  /// Return a base defining value for the 'Index' element of the given vector  /// instruction 'I'.  If Index is null, returns a BDV for the entire vector -/// 'I'.  As an optimization, this method will try to determine when the  +/// 'I'.  As an optimization, this method will try to determine when the  /// element is known to already be a base pointer.  If this can be established,  /// the second value in the returned pair will be true.  Note that either a  /// vector or a pointer typed value can be returned.  For the former, the  /// vector returned is a BDV (and possibly a base) of the entire vector 'I'.  /// If the later, the return pointer is a BDV (or possibly a base) for the -/// particular element in 'I'.   +/// particular element in 'I'.  static BaseDefiningValueResult  findBaseDefiningValueOfVector(Value *I) {    // Each case parallels findBaseDefiningValue below, see that code for @@ -444,7 +444,7 @@ findBaseDefiningValueOfVector(Value *I) {      return BaseDefiningValueResult(I, true);    if (isa<Constant>(I)) -    // Base of constant vector consists only of constant null pointers.  +    // Base of constant vector consists only of constant null pointers.      // For reasoning see similar case inside 'findBaseDefiningValue' function.      return BaseDefiningValueResult(ConstantAggregateZero::get(I->getType()),                                     true); @@ -508,11 +508,11 @@ static BaseDefiningValueResult findBaseDefiningValue(Value *I) {    if (isa<Constant>(I)) {      // We assume that objects with a constant base (e.g. a global) can't move      // and don't need to be reported to the collector because they are always -    // live. Besides global references, all kinds of constants (e.g. undef,  +    // live. Besides global references, all kinds of constants (e.g. undef,      // constant expressions, null pointers) can be introduced by the inliner or      // the optimizer, especially on dynamically dead paths.      // Here we treat all of them as having single null base. By doing this we -    // trying to avoid problems reporting various conflicts in a form of  +    // trying to avoid problems reporting various conflicts in a form of      // "phi (const1, const2)" or "phi (const, regular gc ptr)".      // See constant.ll file for relevant test cases. @@ -1285,14 +1285,14 @@ static void CreateGCRelocates(ArrayRef<Value *> LiveVariables,      return Index;    };    Module *M = StatepointToken->getModule(); -   +    // All gc_relocate are generated as i8 addrspace(1)* (or a vector type whose    // element type is i8 addrspace(1)*). We originally generated unique    // declarations for each pointer type, but this proved problematic because    // the intrinsic mangling code is incomplete and fragile.  Since we're moving    // towards a single unified pointer type anyways, we can just cast everything    // to an i8* of the right address space.  A bitcast is added later to convert -  // gc_relocate to the actual value's type.   +  // gc_relocate to the actual value's type.    auto getGCRelocateDecl = [&] (Type *Ty) {      assert(isHandledGCPointerType(Ty));      auto AS = Ty->getScalarType()->getPointerAddressSpace(); @@ -1413,7 +1413,7 @@ static StringRef getDeoptLowering(CallSite CS) {    }    return "live-through";  } -     +  static void  makeStatepointExplicitImpl(const CallSite CS, /* to replace */                             const SmallVectorImpl<Value *> &BasePtrs, @@ -2570,7 +2570,7 @@ bool RewriteStatepointsForGC::runOnFunction(Function &F, DominatorTree &DT,      }    // Before we start introducing relocations, we want to tweak the IR a bit to -  // avoid unfortunate code generation effects.  The main example is that we  +  // avoid unfortunate code generation effects.  The main example is that we    // want to try to make sure the comparison feeding a branch is after any    // safepoints.  Otherwise, we end up with a comparison of pre-relocation    // values feeding a branch after relocation.  This is semantically correct, @@ -2593,7 +2593,7 @@ bool RewriteStatepointsForGC::runOnFunction(Function &F, DominatorTree &DT,      TerminatorInst *TI = BB.getTerminator();      if (auto *Cond = getConditionInst(TI))        // TODO: Handle more than just ICmps here.  We should be able to move -      // most instructions without side effects or memory access.   +      // most instructions without side effects or memory access.        if (isa<ICmpInst>(Cond) && Cond->hasOneUse()) {          MadeChange = true;          Cond->moveBefore(TI); | 
