1. Mar 05, 2020
    • Louis Dionne's avatar
      [libc++] Fix reverse_iterator test when UBSan is enabled · a2fe17cd
      Louis Dionne authored
      The goal of the test was only to check that we could access the
      `this->current` member of std::reverse_iterator from a derived
      class, but in doing so we incremented a null iterator, which is UB.
      a2fe17cd
    • Sanjay Patel's avatar
      [PassManager] adjust VectorCombine placement · 71a31688
      Sanjay Patel authored
      The initial placement of vector-combine in the opt pipeline revealed phase ordering bugs:
      https://bugs.llvm.org/show_bug.cgi?id=45015
      https://bugs.llvm.org/show_bug.cgi?id=42022
      
      This patch contains a few independent changes:
      
      1. Move the pass up in the pipeline, so it happens just after loop-vectorization.
         This is only to keep vectorization passes together in the pipeline at the moment.
         I don't have evidence of interaction between these yet.
      2. Add an -early-cse pass after -vector-combine to clean up redundant ops. This was
         partly proposed as far back as rL219644 (which is why it's effectively being moved
         in the old PM code). This is important because the subsequent -instcombine doesn't
         work as well without EarlyCSE. With the CSE, -instcombine is able to squash
         shuffles together in 1 of the tests (because those are simple "select" shuffles).
      3. Remove the -vector-combine pass that was running after SLP. We may want to do that
         eventually, but I don't have a test case to support it yet.
      
      Differential Revision: https://reviews.llvm.org/D75145
      71a31688
    • Balazs Benics's avatar
      [analyzer][NFC] Use CallEvent checker callback in GenericTaintChecker · 95a94df5
      Balazs Benics authored
      Summary:
      Intended to be a non-functional change but it turned out CallEvent handles
      constructor calls unlike CallExpr which doesn't triggered for constructors.
      
      All in all, this change shouldn't be observable since constructors are not
      yet propagating taintness like functions.
      In the future constructors should propagate taintness as well.
      
      This change includes:
       - NFCi change all uses of the CallExpr to CallEvent
       - NFC rename some functions, mark static them etc.
       - NFC omit explicit TaintPropagationRule type in switches
       - NFC apply some clang-tidy fixits
      
      Reviewers: NoQ, Szelethus, boga95
      
      Reviewed By: Szelethus
      
      Subscribers: martong, whisperity, xazax.hun, baloghadamsoftware, szepet,
      a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, Charusso, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D72035
      95a94df5
  2. Mar 04, 2020