1. Dec 18, 2019
  2. Dec 17, 2019
    • Joel E. Denny's avatar
      [lit] Fix internal diff newlines for -w/-b · 9658e77e
      Joel E. Denny authored
      For example, without this patch:
      
      ```
      $ python $LIT_BUILTINS/diff.py -b foo.txt bar.txt
      *** /tmp/foo.txt
      --- /tmp/bar.txt
      ***************
      *** 1,2 ****
        1! 2--- 1,2 ----
        1! 20
      ```
      
      With this patch:
      
      ```
      $ python $LIT_BUILTINS/diff.py -b foo.txt bar.txt
      *** /tmp/foo.txt
      --- /tmp/bar.txt
      ***************
      *** 1,2 ****
        1
      ! 2
      --- 1,2 ----
        1
      ! 20
      ```
      
      Reviewed By: rnk
      
      Differential Revision: https://reviews.llvm.org/D71577
      9658e77e
    • Sanjay Patel's avatar
      [AArch64] add tests for fcvtl2; NFC · fbaf835c
      Sanjay Patel authored
      fbaf835c
    • Mitch Phillips's avatar
      Revert "Honor -fuse-init-array when os is not specified on x86" · 2423774c
      Mitch Phillips authored
      This reverts commit aa5ee8f2.
      
      This change broke the sanitizer buildbots. See comments at the patchset
      (https://reviews.llvm.org/D71360) for more information.
      2423774c
    • Kadir Cetinkaya's avatar
      [clangd] Fix handling of inline/anon namespaces and names of deduced types in hover · 9ab15f30
      Kadir Cetinkaya authored
      Summary:
      Clangd normally skips inline and anon namespaces while printing nested name
      specifiers. It also drops any tag specifiers since we make use of `HoverInfo::Kind`
      instead of some text in `HoverInfo::Name`
      
      There was a bug causing us to print innermost inline/anon namespace, this patch
      fixes that by skipping those.
      Also changes printing and kind detection of deduced types to be similar to decl
      case.
      
      Also improves printing for lambdas, currently clangd prints lambdas as
      `(anonymous class)`, we can improve it by at least printing `(lambda)`
      instead.
      
      Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D71543
      9ab15f30
    • Kadir Cetinkaya's avatar
      [clangd][NFC] Make use of TagDecl inside type for hover on auto · 3d156053
      Kadir Cetinkaya authored
      Summary:
      We were traversing AST twice to get the Decl in case of sugared
      types(auto, decltype). They seem to be same in practice, so this patch gets rid
      of the second traversal and makes use of TagDecl inside QualType instead.
      
      Reviewers: ilya-biryukov
      
      Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D71597
      3d156053
    • LLVM GN Syncbot's avatar
      gn build: Merge 390c8baa · 0a1ba7c5
      LLVM GN Syncbot authored
      0a1ba7c5
    • Daniel Sanders's avatar
      [gicombiner] Add the MatchDag structure and parse instruction DAG's from the input · 390c8baa
      Daniel Sanders authored
      Summary:
      The MatchDag structure is a representation of the checks that need to be
      performed and the dependencies that limit when they can happen.
      
      There are two kinds of node in the MatchDag:
      * Instrs - Represent a MachineInstr
      * Predicates - Represent a check that needs to be performed (i.e. opcode, is register, same machine operand, etc.)
      and two kinds of edges:
      * (Traversal) Edges - Represent a register that can be traversed to find one instr from another
      * Predicate Dependency Edges - Indicate that a predicate requires a piece of information to be tested.
      
      For example, the matcher:
       (match (MOV $t, $s),
              (MOV $d, $t))
      with MOV declared as an instruction of the form:
        %dst = MOV %src1
      becomes the following MatchDag with the following instruction nodes:
        __anon0_0 // $t=getOperand(0), $s=getOperand(1)
        __anon0_1 // $d=getOperand(0), $t=getOperand(1)
      traversal edges:
        __anon0_1[src1] --[t]--> __anon0_0[dst]
      predicate nodes:
        <<$mi.getOpcode() == MOV>>:$__anonpred0_2
        <<$mi.getOpcode() == MOV>>:$__anonpred0_3
      and predicate dependencies:
        __anon0_0 ==> __anonpred0_2[mi]
        __anon0_0 ==> __anonpred0_3[mi]
      
      The result of this parse is currently unused but can be tested
      using -gicombiner-stop-after-parse as done in parse-match-pattern.td. The
      dump for testing includes a graphviz format dump to allow the rule to be
      viewed visually.
      
      Later on, these MatchDag's will be used to generate code and to build an
      efficient decision tree.
      
      Reviewers: volkan, bogner
      
      Reviewed By: volkan
      
      Subscribers: arsenm, mgorny, mgrang, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D69077
      390c8baa
    • Raphael Isemann's avatar