1. Mar 03, 2021
    • Arnamoy Bhattacharyya's avatar
      [flang][driver] Fix -fdefault* family bug · 563ea450
      Arnamoy Bhattacharyya authored
      This patch provides a fix for the `fdefault-*` family in f18
      
      (Please consult `D96344` for details)
      
      Differential Revision: https://reviews.llvm.org/D97724
      563ea450
    • Vy Nguyen's avatar
      [lld-macho] Change loadReexport to handle the case where a TAPI re-exports to... · 9a2e2de1
      Vy Nguyen authored
      [lld-macho] Change loadReexport to handle the case where a TAPI re-exports to reference documents nested within other TBD.
      
      Currently, it was delibrately impleneted to not handle this case, but as it has turnt out, we need this feature.
      The concrete use case is
             `System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa` reexports
                     /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit , which then rexports
                          /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation
      
      The current implemention uses a global currentTopLevelTapi, which is not reset until it finishes loading the whole tree.
      This is a problem because if the top-level is set to Cocoa, then when we get to UIFoundation, it will try to find UIFoundation in the current top level, which is Cocoa and will not find it.
      
      The right thing should be:
       - When loading a library from a TBD file, re-exports need to be looked up in the auxiliary documents within the same TBD.
       - When loading from an actual dylib, no additional TBD documents need to be examined.
       - In no case does a re-export mentioned in one TBD file need to be looked up in a document in an auxiliary document from a different TBD file
      
      Differential Revision: https://reviews.llvm.org/D97438
      9a2e2de1
    • Krzysztof Parzyszek's avatar
      [TableGen] Add IntrNoMerge as intrinsic property · d96b5e60
      Krzysztof Parzyszek authored
      There is a function attribute 'nomerge' in addition to 'noduplicate'
      and 'convergent'. Both 'noduplicate' and 'convergent' have corresponding
      intrinsic properties. This patch adds an intrinsic property for the
      'nomerge' attribute.
      
      Differential Revision: https://reviews.llvm.org/D96364
      d96b5e60
    • Utkarsh Saxena's avatar
    • Fraser Cormack's avatar
      [RISCV] Support fixed-length INSERT_VECTOR_ELT · c1695ddf
      Fraser Cormack authored
      This patch enables support for lowering INSERT_VECTOR_ELT on
      fixed-length vector types. The strategy follows that for scalable vector
      types.
      
      This patch also includes a quick fix to prevent the compiler infinitely
      looping between lowering BUILD_VECTOR as VECTOR_SHUFFLE and back again.
      
      Reviewed By: craig.topper
      
      Differential Revision: https://reviews.llvm.org/D97698
      c1695ddf
    • Sam McCall's avatar
      [clangd] Include macro expansions in documentSymbol hierarchy · 91679c95
      Sam McCall authored
      Browsing macro-generated symbols is confusing.
      On the one hand, it seems very *useful* to be able to see the summary of
      symbols that were generated.
      On the other hand, some macros spew a lot of confusing symbols into the
      namespace and when used repeatedly (ABSL_FLAG) can create a lot of spam
      that's hard to navigate.
      
      Design constraints:
       - the macro expansion tree need not align with the AST, though it often
         does in practice.
         We address this by defining the nesting based on the *primary*
         location of decls, rather than their ranges.
       - DocumentSymbol.children[*].range should nest within DocumentSymbol.range
         (This constraint is not in LSP "breadcrumbs" breaks without it)
         We adjust macro ranges so they cover their "children", rather than
         just the macro expansion
       - LSP does not have a "macro expansion" symbolkind, nor does it allow a
         symbol to have no kind. I've arbitrarily picked "null" as this is
         unlikely to conflict with anything useful.
      
      This patch makes all macros and children visible for simplicity+consistency,
      though in some cases it may be better to elide the macro node.
      We may consider adding heuristics for this in future (e.g. when it expands
      to one decl only?) but it doesn't seem clear-cut to me.
      
      Differential Revision: https://reviews.llvm.org/D97615
      91679c95
    • Alexey Bataev's avatar
    • dfukalov's avatar
      [AA] Cache (optionally) estimated PartialAlias offsets. · 6e967834
      dfukalov authored
      For the cases of two clobbering loads and one loaded object is fully contained
      in the second `BasicAAResult::aliasGEP` returns just `PartialAlias` that
      is actually more common case of partial overlap, it doesn't say anything about
      actual overlapping sizes.
      
      AA users such as GVN and DSE have no functionality to estimate aliasing of GEPs
      with non-constant offsets. The change stores estimated relative offsets so they
      can be used further.
      
      Reviewed By: nikic
      
      Differential Revision: https://reviews.llvm.org/D93529
      6e967834
  2. Mar 02, 2021