Skip to content
  1. Sep 21, 2018
  2. Sep 20, 2018
    • Jessica Paquette's avatar
      [MachineOutliner][NFC] Don't add MBBs with a size < 2 to the search space · b320ca26
      Jessica Paquette authored
      The suffix tree won't ever consider sequences with a length less than 2.
      
      Therefore, we really ought to not even consider them in the first place.
      
      Also add a FIXME explaining that this should be defined in terms of the size
      in B of an outlined call versus the size in B of the MBB.
      
      llvm-svn: 342688
      b320ca26
    • Xin Tong's avatar
      [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC]. · 9b7e4515
      Xin Tong authored
      Summary:
      AvailableExternal was not handled in isDiscardableIfUnused when isDiscardableIfUnused
      was added in r158476. Till it was handled in r247044. This is a NFC.
      
      Reviewers: pcc, tejohnson
      
      Reviewed By: tejohnson
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D52319
      
      llvm-svn: 342684
      9b7e4515
    • Sanjay Patel's avatar
      [InstCombine] rename test file, simplify tests, regenerate full checks; NFC · 18c29b7d
      Sanjay Patel authored
      Fast-math is irrelevant for these transforms.
      
      llvm-svn: 342683
      18c29b7d
    • Walter Lee's avatar
      [RegAllocGreedy] Fix crash in tryLocalSplit · f75e8036
      Walter Lee authored
      tryLocalSplit only handles a single use block, but an interval may
      have multiple use blocks.  So don't crash in that case.  This fixes
      PR38795.
      
      Differential revision: https://reviews.llvm.org/D52277
      
      llvm-svn: 342682
      f75e8036
    • Zachary Turner's avatar
      [PDB] Fix -Wcovered-switch-default warning. · 4e0295be
      Zachary Turner authored
      llvm-svn: 342681
      4e0295be
    • Vedant Kumar's avatar
      [Bitcode] Address backwards compat bug in r342631 · 386ad01c
      Vedant Kumar authored
      r342631 expanded bitc::METADATA_LOCATION by one element. The bitcode
      metadata loader was changed in a backwards-incompatible way, leading to
      crashes when disassembling old bitcode:
      
        assertion: empty() && "PlaceholderQueue hasn't been flushed before being destroyed"
        Assertion failed: (empty() && "PlaceholderQueue hasn't been flushed before being destroyed")
      
      This commit teaches the metadata loader to assume that the newly-added
      IsImplicitCode bit is 'false' when not present in old bitcode. I've added a
      bitcode compat regression test.
      
      rdar://44645820
      
      llvm-svn: 342678
      386ad01c
    • Jessica Paquette's avatar
      [MachineOutliner][NFC] Move debug info emission to createOutlinedFunction · cc06a782
      Jessica Paquette authored
      When you create an outlined function, you know everything you need to know
      to decide if debug info should be created. If we emit debug info in
      createOutlinedFunction, then we don't need to keep track of every IR function
      we create.
      
      llvm-svn: 342677
      cc06a782
    • Sameer AbuAsal's avatar
      [inline Cost] Don't mark functions accessing varargs as non-inlinable · 77beee41
      Sameer AbuAsal authored
      Summary:
      rL323619 marks functions that are calling va_end as not viable for
      inlining. This patch reverses that since this va_end doesn't need
      access to the vriadic arguments list that are saved on the stack, only
      va_start does.
      
      Reviewers: efriedma, fhahn
      
      Reviewed By: fhahn
      
      Subscribers: eraman, haicheng, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D52067
      
      llvm-svn: 342675
      77beee41
    • Rui Ueyama's avatar
      Fix -Wtrigraphs. · 392bf6af
      Rui Ueyama authored
      llvm-svn: 342674
      392bf6af
    • Zachary Turner's avatar
      Fix warnings. · 68f0eeff
      Zachary Turner authored
      llvm-svn: 342670
      68f0eeff
    • Sanjay Patel's avatar
      [SelectionDAG] replace duplicated peekThroughBitcast helper functions; NFCI · 8a1227cc
      Sanjay Patel authored
      x86 had 2 versions of peekThroughBitcast. DAGCombiner had 1. Plus, it had a 1-off implementation for the one-use variant.
      Move the x86 versions of the code to SelectionDAG, so we don't have different copies of the code. 
      No functional change intended.
      
      I'm putting this next to isBitwiseNot() because I am planning to use it in there. Another option is next to the
      helpers in the ISD namespace (eg, ISD::isConstantSplatVector()). But if there's no good reason for those to be 
      there, I'd prefer to pull other helpers over to SelectionDAG in follow-up steps.
      
      Differential Revision: https://reviews.llvm.org/D52285
      
      llvm-svn: 342669
      8a1227cc
    • Sanjay Patel's avatar
      [InstCombine] add tests for vector concat with binop (PR33026); NFC · dfe43804
      Sanjay Patel authored
      llvm-svn: 342665
      dfe43804
    • Fedor Sergeev's avatar
      [New PM] Introducing PassInstrumentation framework · ee8d31c4
      Fedor Sergeev authored
      Pass Execution Instrumentation interface enables customizable instrumentation
      of pass execution, as per "RFC: Pass Execution Instrumentation interface"
      posted 06/07/2018 on llvm-dev@
      
      The intent is to provide a common machinery to implement all
      the pass-execution-debugging features like print-before/after,
      opt-bisect, time-passes etc.
      
      Here we get a basic implementation consisting of:
      * PassInstrumentationCallbacks class that handles registration of callbacks
        and access to them.
      
      * PassInstrumentation class that handles instrumentation-point interfaces
        that call into PassInstrumentationCallbacks.
      
      * Callbacks accept StringRef which is just a name of the Pass right now.
        There were some ideas to pass an opaque wrapper for the pointer to pass instance,
        however it appears that pointer does not actually identify the instance
        (adaptors and managers might have the same address with the pass they govern).
        Hence it was decided to go simple for now and then later decide on what the proper
        mental model of identifying a "pass in a phase of pipeline" is.
      
      * Callbacks accept llvm::Any serving as a wrapper for const IRUnit*, to remove direct dependencies
        on different IRUnits (e.g. Analyses).
      
      * PassInstrumentationAnalysis analysis is explicitly requested from PassManager through
        usual AnalysisManager::getResult. All pass managers were updated to run that
        to get PassInstrumentation object for instrumentation calls.
      
      * Using tuples/index_sequence getAnalysisResult helper to extract generic AnalysisManager's extra
        args out of a generic PassManager's extra args. This is the only way I was able to explicitly
        run getResult for PassInstrumentationAnalysis out of a generic code like PassManager::run or
        RepeatedPass::run.
        TODO: Upon lengthy discussions we agreed to accept this as an initial implementation
        and then get rid of getAnalysisResult by improving RepeatedPass implementation.
      
      * PassBuilder takes PassInstrumentationCallbacks object to pass it further into
        PassInstrumentationAnalysis. Callbacks registration should be performed directly
        through PassInstrumentationCallbacks.
      
      * new-pm tests updated to account for PassInstrumentationAnalysis being run
      
      * Added PassInstrumentation tests to PassBuilderCallbacks unit tests.
        Other unit tests updated with registration of the now-required PassInstrumentationAnalysis.
      
        Made getName helper to return std::string (instead of StringRef initially) to fix
        asan builtbot failures on CGSCC tests.
      
      Reviewers: chandlerc, philip.pfaffe
      Differential Revision: https://reviews.llvm.org/D47858
      
      llvm-svn: 342664
      ee8d31c4
    • Zachary Turner's avatar
      [PDB] Fix failing test. · 4bb55c6a
      Zachary Turner authored
      This test was missed on the last run since I only ran a subset
      of them before commiting.
      
      llvm-svn: 342659
      4bb55c6a
    • Zachary Turner's avatar
      [PDB] Better printing of builtin types when using DIA dumper. · 5907a780
      Zachary Turner authored
      llvm-svn: 342658
      5907a780
    • Calixte Denizet's avatar
      [gcov] Fix wrong line hit counts when multiple blocks are on the same line · 0b1fe47e
      Calixte Denizet authored
      Summary:
      The goal of this patch is to have the same behaviour than gcc-gcov.
      Currently the hit counts for a line is the sum of the counts for each block on that line.
      The idea is to detect the cycles in the graph of blocks in using the algorithm by Hawick & James.
      The count for a cycle is the min of the counts for each edge in the cycle.
      Once we've the count for each cycle, we can sum them and add the transition counts of those cycles.
      
      Fix both https://bugs.llvm.org/show_bug.cgi?id=38065 and https://bugs.llvm.org/show_bug.cgi?id=38066
      
      Reviewers: marco-c, davidxl
      
      Reviewed By: marco-c
      
      Subscribers: vsk, lebedev.ri, sylvestre.ledru, dblaikie, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D49659
      
      llvm-svn: 342657
      0b1fe47e
    • Zachary Turner's avatar
      [PDB] Add the ability to map forward references to full decls. · cfa1d499
      Zachary Turner authored
      Some records point to an LF_CLASS, LF_UNION, LF_STRUCTURE, or LF_ENUM
      which is a forward reference and doesn't contain complete debug
      information. In these cases, we'd like to be able to quickly locate the
      full record. The TPI stream stores an array of pre-computed record hash
      values, one for each type record. If we pre-process this on startup, we
      can build a mapping from hash value -> {list of possible matching type
      indices}. Since hashes of full records are only based on the name and or
      unique name and not the full record contents, we can then use forward
      ref record to compute the hash of what *would* be the full record by
      just hashing the name, use this to get the list of possible matches, and
      iterate those looking for a match on name or unique name.
      
      llvm-pdbutil is updated to resolve forward references for the purposes
      of testing (plus it's just useful).
      
      Differential Revision: https://reviews.llvm.org/D52283
      
      llvm-svn: 342656
      cfa1d499
    • Andrea Di Biagio's avatar
      [llvm-mca][BtVer2] Modify ANDN tests in zero-idioms-avx-256.s. NFC · 0aea3103
      Andrea Di Biagio authored
      Two test cases should have tested 256-bit variants of VANDN zero-idioms instead
      of the 128-bit variants.
      
      llvm-svn: 342655
      0aea3103
    • Sanjay Patel's avatar
      [IR] add shuffle query for vector concatenation · fd4976bd
      Sanjay Patel authored
      This can be used for combining and in the vectorizers/cost models.
      
      llvm-svn: 342653
      fd4976bd
    • Sanjay Patel's avatar
      [IR] reduce duplication in unittest for shuffles; NFC · 0ff51d81
      Sanjay Patel authored
      llvm-svn: 342650
      0ff51d81
    • Jesper Antonsson's avatar
      [InstCombine] Handle vector compares in foldGEPIcmp() · 719fa055
      Jesper Antonsson authored
      Summary:
      This is to fix PR38984 "InstCombine assertion at vector gep/icmp folding":
      https://bugs.llvm.org/show_bug.cgi?id=38984
      
      Reviewers: majnemer, spatel, lattner, lebedev.ri
      
      Reviewed By: lebedev.ri
      
      Subscribers: lebedev.ri, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D52263
      
      llvm-svn: 342647
      719fa055
    • Guillaume Chatelet's avatar
      [llvm-exegesis] Fix broken build bots. · 12ca74e5
      Guillaume Chatelet authored
      Reviewers: javed.absar
      
      Subscribers: tschuett, courbet, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D52302
      
      llvm-svn: 342646
      12ca74e5
    • Simon Pilgrim's avatar
      [X86][SSE] Remove UNPCKL(SHUFFLE)->UNPCKH custom combine · 3e2de767
      Simon Pilgrim authored
      This can be achieved more generally by combineX86ShufflesRecursively.
      
      llvm-svn: 342645
      3e2de767
    • Guillaume Chatelet's avatar
      [llvm-exegesis] Improve Register Setup (roll forward of D51856). · c96a97ba
      Guillaume Chatelet authored
      Summary:
      Added function to set a register to a particular value + tests.
      Add EFLAGS test, use new setRegTo instead of setRegToConstant.
      
      Reviewers: courbet, javed.absar
      
      Subscribers: llvm-commits, tschuett, mgorny
      
      Differential Revision: https://reviews.llvm.org/D52297
      
      llvm-svn: 342644
      c96a97ba
    • Benjamin Kramer's avatar
      [ADT] Bring back memmove to make GCC 5.4 happy · b00e0714
      Benjamin Kramer authored
      All other GCCs look good so far. GCC 5.4 complains about strict
      aliasing, so fix that.
      
      llvm-svn: 342643
      b00e0714
    • Simon Pilgrim's avatar
      [X86][SSE] Remove PSHUFLW/PSHUFHW combineRedundantHalfShuffle combine · 46c1dcb1
      Simon Pilgrim authored
      This can be achieved more generally by combineX86ShufflesRecursively and was causing a fuzz test failure found by Mikael Holmén.
      
      llvm-svn: 342642
      46c1dcb1
    • Alex Bradbury's avatar
      [RISCV][MC] Modify evaluateConstantImm interface to allow reuse from addExpr · 96ed75d0
      Alex Bradbury authored
      This is a trivial refactoring that I'm committing now as it makes a patch I'm 
      about to post for review easier to follow. There is some overlap between 
      evaluateConstantImm and addExpr in RISCVAsmParser. This patch allows 
      evaluateConstantImm to be reused from addExpr to remove this overlap. The 
      benefit will be greater when a future patch adds extra code to allows 
      immediates to be evaluated from constant symbols (e.g. `.equ CONST, 0x1234`).
      
      No functional change intended.
      
      llvm-svn: 342641
      96ed75d0
Loading