1. 21 Jun, 2015 7 commits
  2. 08 Jun, 2015 1 commit
  3. 07 Jun, 2015 4 commits
  4. 06 Jun, 2015 6 commits
  5. 04 Jun, 2015 9 commits
  6. 02 Jun, 2015 4 commits
  7. 27 May, 2015 1 commit
    • Stephen Kelly's avatar
      cmLocalGenerator: Require a valid cmState::Snapshot in the ctor. · 3b880a07
      Stephen Kelly authored and Brad King's avatar Brad King committed
      Refactor the local generator creation API to accept a
      cmState::Snapshot.  Adjust MakeLocalGenerator to use the 'current'
      snapshot in cases where there is no parent.  Create the snapshot
      for subdirectories in cmMakefile::AddSubdirectory.
      This means that snapshots are now created at the point of extending the tree,
      as appropriate, and independently of the cmLocalGenerator and cmMakefile they
      represent the state for.
  8. 25 May, 2015 2 commits
  9. 21 May, 2015 1 commit
  10. 20 May, 2015 1 commit
  11. 19 May, 2015 4 commits
    • Stephen Kelly's avatar
      cmMakefile: Remove VarUsageStack. · b9f99155
      Stephen Kelly authored
      Store usage information in the cmDefintions value instead.  We already
      pay for the memory as padding in the Def struct, so we might as well
      use it.
    • Stephen Kelly's avatar
      cmMakefile: Remove VarInitStack. · 2b09d9f3
      Stephen Kelly authored
      In cmMakefile::PushScope, a copy of the closure of keys initialized
      in the parent scope is made.  In PopScope, essentially the same copy
      is inserted back into the parent.  That means a lot of duplication
      of strings and a lot of string comparisons.  None of it is needed,
      because the cmDefinitions keys already provide a canonical
      representation of what is initialized.
      The removal of the separate container also makes the variable handling
      code more easy to reason about in general.
      Before this patch, configuring llvm uses 200 KiB for the VarInitStack.
      Overall peak memory consumption goes from 35.5 MiB to 35.1 MiB.
    • Stephen Kelly's avatar
    • Stephen Kelly's avatar
      cmMakefile: Mark definitions explicitly erased, even at top level. · f58c3774
      Stephen Kelly authored
      Presumably the intention here is to attempt to optimize memory by not
      storing what is not needed.  However, all keys need to be tracked
      anyway to implement initialization tracking, and this special case
      gets in the way of simplifying the implementation of that.
      This doesn't change any observable effects because values set
      to 0 are considered not to exist by the cmDefinitions API.