Skip to content
  1. Nov 24, 2013
  2. Nov 23, 2013
    • Chandler Carruth's avatar
      [PM] Complete the cross-layer interfaces with a Module-to-Function · c1ff9ed6
      Chandler Carruth authored
      proxy. This lets a function pass query a module analysis manager.
      However, the interface is const to indicate that only cached results can
      be safely queried.
      
      With this, I think the new pass manager is largely functionally complete
      for modules and analyses. Still lots to test, and need to generalize to
      SCCs and Loops, and need to build an adaptor layer to support the use of
      existing Pass objects in the new managers.
      
      llvm-svn: 195538
      c1ff9ed6
    • David Blaikie's avatar
      DwarfDebug: Move ownership of CompileUnits into DwarfUnits · 72f1a3ec
      David Blaikie authored
      This avoids the need for an extra list of SkeletonCUs and associated
      cleanup while staging things to be cleaner for further type unit
      improvements.
      
      Also hopefully fixes a memory leak introduced in r195166.
      
      llvm-svn: 195536
      72f1a3ec
    • Chandler Carruth's avatar
      Migrate metadata information from scalar to vector instructions during · 57458517
      Chandler Carruth authored
      SLP vectorization. Based on the code in BBVectorizer.
      
      Fixes PR17741.
      
      Patch by Raul Silvera, reviewed by Hal and Nadav. Reformatted by my
      driving of clang-format. =]
      
      llvm-svn: 195528
      57458517
    • Chandler Carruth's avatar
      [PM] Add support to the analysis managers to query explicitly for cached · de9afd84
      Chandler Carruth authored
      results.
      
      This is the last piece of infrastructure needed to effectively support
      querying *up* the analysis layers. The next step will be to introduce
      a proxy which provides access to those layers with appropriate use of
      const to direct queries to the safe interface.
      
      llvm-svn: 195525
      de9afd84
    • Eric Christopher's avatar
      Refactor DW_AT_ranges handling to use labels for ranges rather than · 4751d701
      Eric Christopher authored
      a non-relocatable number offset.
      
      One fixme to make the ranges as discrete data structures and
      have range lists explicitly represented rather than as a list of symbols.
      
      llvm-svn: 195523
      4751d701
    • Eric Christopher's avatar
      Reformat const for readability. · f8da6aa7
      Eric Christopher authored
      llvm-svn: 195522
      f8da6aa7
    • Chandler Carruth's avatar
      [PM] Switch the downward invalidation to be incremental where only the · bceeb229
      Chandler Carruth authored
      one function's analyses are invalidated at a time. Also switch the
      preservation of the proxy to *fully* preserve the lower (function)
      analyses.
      
      Combined, this gets both upward and downward analysis invalidation to
      a point I'm happy with:
      
      - A function pass invalidates its function analyses, and its parent's
        module analyses.
      - A module pass invalidates all of its functions' analyses including the
        set of which functions are in the module.
      - A function pass can preserve a module analysis pass.
      - If all function passes preserve a module analysis pass, that
        preservation persists. If any doesn't the module analysis is
        invalidated.
      - A module pass can opt into managing *all* function analysis
        invalidation itself or *none*.
      - The conservative default is none, and the proxy takes the maximally
        conservative approach that works even if the set of functions has
        changed.
      - If a module pass opts into managing function analysis invalidation it
        has to propagate the invalidation itself, the proxy just does nothing.
      
      The only thing really missing is a way to query for a cached analysis or
      nothing at all. With this, function passes can more safely request
      a cached module analysis pass without fear of it accidentally running
      part way through.
      
      llvm-svn: 195519
      bceeb229
    • Tom Stellard's avatar
      R600/SI: Fixing handling of condition codes · c0845334
      Tom Stellard authored
      We were ignoring the ordered/onordered bits and also the signed/unsigned
      bits of condition codes when lowering the DAG to MachineInstrs.
      
      NOTE: This is a candidate for the 3.4 branch.
      llvm-svn: 195514
      c0845334
    • Yuchen Wu's avatar
      llvm-cov: Split entry blocks in GCNOProfiling.cpp. · c87ca321
      Yuchen Wu authored
      gcov expects every function to contain an entry block that
      unconditionally branches into the next block. clang does not implement
      basic blocks in this manner, so gcov did not output correct branch info
      if the entry block branched to multiple blocks.
      
      This change splits every function's entry block into an empty block and
      a block with the rest of the instructions. The instrumentation code will
      take care of the rest.
      
      llvm-svn: 195513
      c87ca321
  3. Nov 22, 2013
Loading