Skip to content
  1. Nov 20, 2013
    • Hal Finkel's avatar
      Add loop rerolling code owner · 52261a65
      Hal Finkel authored
      I am the code owner of the loop reroller.
      
      llvm-svn: 195271
      52261a65
    • Benjamin Kramer's avatar
      MachineBlockPlacement: Strengthen the source order bias when picking an exit block. · c8160d65
      Benjamin Kramer authored
      We now only allow breaking source order if the exit block frequency is
      significantly higher than the other exit block. The actual bias is
      currently under a flag so the best cut-off can be found; the flag
      defaults to the old behavior. The idea is to get some benchmark coverage
      over different values for the flag and pick the best one.
      
      When we require the new frequency to be at least 20% higher than the old
      frequency I see a 5% speedup on zlib's deflate when compressing a random
      file on x86_64/westmere. Hal reported a small speedup on Fhourstones on
      a BG/Q and no regressions in the test suite.
      
      The test case is the full long_match function from zlib's deflate. I was
      reluctant to add it for previous tweaks to branch probabilities because
      it's large and potentially fragile, but changed my mind since it's an
      important use case and more likely to break with all the current work
      going into the PGO infrastructure.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2202
      
      llvm-svn: 195265
      c8160d65
    • David Blaikie's avatar
      DwarfCompileUnit: Initialize DebugInfoOffset. · beee345a
      David Blaikie authored
      While not strictly necessary (the class has an invariant that
      "setDebugInfoOffset" is called before "getDebugInfoOffset" - anyone
      client that actually gets the default zero offset is buggy/broken) this
      is consistent with the code as originally written and the removal of the
      initialization was an accident in r195166.
      
      Suggested by Manman Ren.
      
      llvm-svn: 195263
      beee345a
    • David Blaikie's avatar
      CR feedback for r195166: Add comments regarding type unit mapping and type... · bcb418e5
      David Blaikie authored
      CR feedback for r195166: Add comments regarding type unit mapping and type units disabling cross-CU sharing.
      
      Changes suggested by Manman Ren.
      
      llvm-svn: 195262
      bcb418e5
    • Chandler Carruth's avatar
      Make the moved-from SmallPtrSet be a valid, empty, small-state object. · c74010df
      Chandler Carruth authored
      Enhance the tests to actually require moves in C++11 mode, in addition
      to testing the moved-from state. Further enhance the tests to cover
      copy-assignment into a moved-from object and moving a large-state
      object. (Note that we can't really test small-state vs. large-state as
      that isn't an observable property of the API really.) This should finish
      addressing review on r195239.
      
      llvm-svn: 195261
      c74010df
    • Chandler Carruth's avatar
      Add a test for assignment operator behavior which was changed in · 6d888bc0
      Chandler Carruth authored
      r195239, as well as a comment about the fact that assigning over
      a moved-from object was in fact tested. Addresses some of the review
      feedback on r195239.
      
      llvm-svn: 195260
      6d888bc0
    • Daniel Sanders's avatar
      [mips][msa] Pseudo instructions require HasMSA too. Inherit from MSAPseudo instead of MipsPseudo · f93e8152
      Daniel Sanders authored
      There's no test case for this commit. This is because it is doubtful that the
      incorrect behaviour can actually trigger. When MSA is not enabled, the type
      legalizer should have eliminated all occurrences of patterns the affected
      pseudo-instruction could possibly match before instruction selection occurs.
      
      llvm-svn: 195252
      f93e8152
    • Daniel Sanders's avatar
      FileCheck: fix a bug with multiple --check-prefix options. Similar to r194565 · 43b5f572
      Daniel Sanders authored
      Summary:
      Directives are being ignored, when they occur between a partial-word false
      match and any match on another prefix.
      
      For example, with FOO and BAR prefixes:
         _FOO
         FOO: foo
         BAR: bar
      FileCheck incorrectly matches:
         fog
         bar
      
      This happens because FOO falsely matched as a partial word at '_FOO' and was
      ignored while BAR matched at 'BAR:'. The match of BAR is incorrectly returned
      as the 'first match' causing the FOO directive to be discarded.
      
      Fixed this the same way as r194565 (D2166) did for a similar test case.
      The partial-word false match should be counted as a match for the purposes of
      finding the first match of a prefix, but should be returned as a false match
      using CheckTy::CheckNone so that it isn't treated as a directive.
      
      Fixes PR17995
      
      Reviewers: samsonov, arsenm
      
      Reviewed By: samsonov
      
      CC: llvm-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2228
      
      llvm-svn: 195248
      43b5f572
    • NAKAMURA Takumi's avatar
      llvm/CMakeLists.txt: Update LLVM_VERSION_MINOR to 5. · a5997c4e
      NAKAMURA Takumi authored
      llvm-svn: 195247
      a5997c4e
    • Daniel Sanders's avatar
      [mips][msa] Remove unused instruction class MSA_I8_X_DESC_BASE · 6b97d604
      Daniel Sanders authored
      llvm-svn: 195245
      6b97d604
    • Chandler Carruth's avatar
      [PM] Add the preservation system to the new pass manager. · c0bfa8c2
      Chandler Carruth authored
      This adds a new set-like type which represents a set of preserved
      analysis passes. The set is managed via the opaque PassT::ID() void*s.
      The expected convenience templates for interacting with specific passes
      are provided. It also supports a symbolic "all" state which is
      represented by an invalid pointer in the set. This state is nicely
      saturating as it comes up often. Finally, it supports intersection which
      is used when finding the set of preserved passes after N different
      transforms.
      
      The pass API is then changed to return the preserved set rather than
      a bool. This is much more self-documenting than the previous system.
      Returning "none" is a conservatively correct solution just like
      returning "true" from todays passes and not marking any passes as
      preserved. Passes can also be dynamically preserved or not throughout
      the run of the pass, and whatever gets returned is the binding state.
      Finally, preserving "all" the passes is allowed for no-op transforms
      that simply can't harm such things.
      
      Finally, the analysis managers are changed to instead of blindly
      invalidating all of the analyses, invalidate those which were not
      preserved. This should rig up all of the basic preservation
      functionality. This also correctly combines the preservation moving up
      from one IR-layer to the another and the preservation aggregation across
      N pass runs. Still to go is incrementally correct invalidation and
      preservation across IR layers incrementally during N pass runs. That
      will wait until we have a device for even exposing analyses across IR
      layers.
      
      While the core of this change is obvious, I'm not happy with the current
      testing, so will improve it to cover at least some of the invalidation
      that I can test easily in a subsequent commit.
      
      llvm-svn: 195241
      c0bfa8c2
    • Chandler Carruth's avatar
      Give SmallPtrSet move semantics when we have R-value references. · 55758e96
      Chandler Carruth authored
      Somehow, this ADT got missed which is moderately terrifying considering
      the efficiency of move for it.
      
      The code to implement move semantics for it is pretty horrible
      currently but was written to reasonably closely match the rest of the
      code. Unittests that cover both copying and moving (at a basic level)
      added.
      
      llvm-svn: 195239
      55758e96
    • NAKAMURA Takumi's avatar
    • NAKAMURA Takumi's avatar
      Whitespace. · f2392ebb
      NAKAMURA Takumi authored
      llvm-svn: 195237
      f2392ebb
    • Bill Wendling's avatar
      Update to reflect the next release. · 70d39e6f
      Bill Wendling authored
      llvm-svn: 195235
      70d39e6f
    • Elena Demikhovsky's avatar
      Fixed compilation error. · a5967af9
      Elena Demikhovsky authored
      llvm-svn: 195230
      a5967af9
    • Elena Demikhovsky's avatar
      AVX-512: Concat 4 128-bit vectors in one 512-bit vector. · e1f9bf05
      Elena Demikhovsky authored
      llvm-svn: 195229
      e1f9bf05
    • Bill Wendling's avatar
      Add -triple option. · d607384d
      Bill Wendling authored
      The -triple option is used to create a named tarball of the release binaries.
      
      Also disable the RPATH modifications on Mac OS X. It's not needed.
      
      llvm-svn: 195193
      d607384d
    • Chandler Carruth's avatar
      [PM] Make the function pass manager more regular. · d895e29e
      Chandler Carruth authored
      The FunctionPassManager is now itself a function pass. When run over
      a function, it runs all N of its passes over that function. This is the
      1:N mapping in the pass dimension only. This allows it to be used in
      either a ModulePassManager or potentially some other manager that
      works on IR units which are supersets of Functions.
      
      This commit also adds the obvious adaptor to map from a module pass to
      a function pass, running the function pass across every function in the
      module.
      
      The test has been updated to use this new pattern.
      
      llvm-svn: 195192
      d895e29e
    • Yuchen Wu's avatar
      llvm-cov: Added file checksum to gcno and gcda files. · babe7491
      Yuchen Wu authored
      Instead of permanently outputting "MVLL" as the file checksum, clang
      will create gcno and gcda checksums by hashing the destination block
      numbers of every arc. This allows for llvm-cov to check if the two gcov
      files are synchronized.
      
      Regenerated the test files so they contain the checksum. Also added
      negative test to ensure error when the checksums don't match.
      
      llvm-svn: 195191
      babe7491
    • Chandler Carruth's avatar
      [PM] Split the analysis manager into a function-specific interface and · ed1ffe01
      Chandler Carruth authored
      a module-specific interface. This is the first of many steps necessary
      to generalize the infrastructure such that we can support both
      a Module-to-Function and Module-to-SCC-to-Function pass manager
      nestings.
      
      After a *lot* of attempts that never worked and didn't even make it to
      a committable state, it became clear that I had gotten the layering
      design of analyses flat out wrong. Four days later, I think I have most
      of the plan for how to correct this, and I'm starting to reshape the
      code into it. This is just a baby step I'm afraid, but starts separating
      the fundamentally distinct concepts of function analysis passes and
      module analysis passes so that in subsequent steps we can effectively
      layer them, and have a consistent design for the eventual SCC layer.
      
      As part of this, I've started some interface changes to make passes more
      regular. The module pass accepts the module in the run method, and some
      of the constructor parameters are gone. I'm still working out exactly
      where constructor parameters vs. method parameters will be used, so
      I expect this to fluctuate a bit.
      
      This actually makes the invalidation less "correct" at this phase,
      because now function passes don't invalidate module analysis passes, but
      that was actually somewhat of a misfeature. It will return in a better
      factored form which can scale to other units of IR. The documentation
      has gotten less verbose and helpful.
      
      llvm-svn: 195189
      ed1ffe01
    • Hal Finkel's avatar
      PPC: Optimize rldicl generation for masked shifts · 22498fa6
      Hal Finkel authored
      Masking operations (where only some number of the low bits are being kept) are
      selected to rldicl(x, 0, mb). If x is a logical right shift (which would become
      rldicl(y, 64-n, n)), we might be able to fold the two instructions together:
      
        rldicl(rldicl(x, 64-n, n), 0, mb) -> rldicl(x, 64-n, mb) for n <= mb
      
      The right shift is really a left rotate followed by a mask, and if the explicit
      mask is a more-restrictive sub-mask of the mask implied by the shift, only one
      rldicl is needed.
      
      llvm-svn: 195185
      22498fa6
    • Eric Christopher's avatar
      Remove polymorphic destruction for DIE. DIEBlocks are owned elsewhere · 3262a116
      Eric Christopher authored
      and not polymorphically deleted and they are the only thing that derive
      from DIE.
      
      llvm-svn: 195183
      3262a116
    • Eric Christopher's avatar
      Remove capability for polymorphic destruction from LexicalScope · b7dee8a6
      Eric Christopher authored
      and LexicalScopes, we're not using it.
      
      llvm-svn: 195182
      b7dee8a6
    • Eric Christopher's avatar
      Grammar. · 9d7d5da6
      Eric Christopher authored
      llvm-svn: 195181
      9d7d5da6
    • Eric Christopher's avatar
      Formatting, 80-col, trailing whitespace. · 6211e4b9
      Eric Christopher authored
      llvm-svn: 195180
      6211e4b9
    • Jack Carter's avatar
      long line correction · d4b22dcb
      Jack Carter authored
      llvm-svn: 195179
      d4b22dcb
    • Jack Carter's avatar
      long line correction · 03af6d14
      Jack Carter authored
      llvm-svn: 195175
      03af6d14
    • Filip Pizlo's avatar
      Expose the fence instruction via the C API. · 0d3f7eca
      Filip Pizlo authored
      llvm-svn: 195173
      0d3f7eca
    • Aditya Nandakumar's avatar
      Fixed an extra for(typo) in the comments · c1fd0dd4
      Aditya Nandakumar authored
      llvm-svn: 195171
      c1fd0dd4
    • Jack Carter's avatar
      long lines and white space correction · 5c0af48a
      Jack Carter authored
      llvm-svn: 195170
      5c0af48a
    • David Blaikie's avatar
      DebugInfo: Partial implementation of DWARF type units. · 409dd9c3
      David Blaikie authored
      Emit DW_TAG_type_units into the debug_info section using compile unit
      headers. This is bogus/unusable by debuggers, but testable and provides
      more isolated review.
      
      Subsequent patches will include support for type unit headers and
      emission into the debug_types section, as well as comdat grouping the
      types based on their hash. Also the CompileUnit type will be renamed
      'Unit' and relevant portions pulled out into respective CompileUnit and
      TypeUnit types.
      
      llvm-svn: 195166
      409dd9c3
  2. Nov 19, 2013
Loading