Changes from Git (git http://labmaster3.local/git/llvm-project.git)


  1. [mlir] Update the CallGraph for nested symbol references, and simplify (details)
  2. [DebugInfo] Add another level to DebugInfoKind called Constructor (details)
  3. [mlir] Add support for attaching a visibility to symbols. (details)
  4. [mlir] NFC: Remove unused variable. (details)
  5. Re-enable testing of .s tests under test/CodeGen/X86. (details)
  6. [GlobalISel] Change representation of shuffle masks in MachineOperand. (details)
Commit c7748404920b3674e79059cbbe73b6041a214444 by riverriddle
[mlir] Update the CallGraph for nested symbol references, and simplify
Summary: This enables tracking calls that cross symbol table boundaries.
It also simplifies some of the implementation details of
CallableOpInterface, i.e. there can only be one region within the
callable operation.
Depends On D72042
Reviewed By: jpienaar
Differential Revision:
The file was modifiedmlir/include/mlir/Analysis/
The file was modifiedmlir/lib/Transforms/Utils/InliningUtils.cpp
The file was modifiedmlir/test/Analysis/test-callgraph.mlir
The file was modifiedmlir/lib/Analysis/CallGraph.cpp
The file was modifiedmlir/lib/Transforms/Inliner.cpp
The file was modifiedmlir/include/mlir/IR/Function.h
The file was modifiedmlir/test/lib/TestDialect/
Commit 53539bb032d162e0147c0e9650a5d1c7ca77dae0 by akhuang
[DebugInfo] Add another level to DebugInfoKind called Constructor
The option will limit debug info by only emitting complete class type
information when its constructor is emitted. This patch changes
comparisons with LimitedDebugInfo to use the new level instead.
Differential Revision:
The file was modifiedclang/include/clang/Basic/DebugInfoOptions.h
The file was modifiedclang/lib/CodeGen/CGBlocks.cpp
The file was modifiedclang/lib/CodeGen/CGDecl.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/lib/CodeGen/CGStmt.cpp
Commit 9b92e4fbdb5bc4fdd21702e0ce104dfcac6a54a7 by riverriddle
[mlir] Add support for attaching a visibility to symbols.
Summary: The visibility defines the structural reachability of the
symbol within the IR. Symbols can define one of three visibilities:
* Public The symbol \may be accessed from outside of the visible IR. We
cannot assume that we can observe all of the uses of this symbol.
* Private The symbol may only be referenced from within the operations
in the current symbol table, via SymbolRefAttr.
* Nested The symbol may be referenced by operations in symbol tables
above the current symbol table, as long as each symbol table parent also
defines a non-private symbol. This allows or referencing the symbol from
outside of the defining symbol table, while retaining the ability for
the compiler to see all uses.
These properties help to reason about the properties of a symbol, and
will be used in a follow up to implement a dce pass on dead symbols.
A few examples of what this would look like in the IR are shown below:
  module @public_module {
   // This function can be accessed by 'live.user'
   func @nested_function() attributes { sym_visibility = "nested" }
    // This function cannot be accessed outside of 'public_module'
  func @private_function() attributes { sym_visibility = "private" }
  // This function can only be accessed from within this module.
func @private_function() attributes { sym_visibility = "private" }
  // This function may be referenced externally.
func @public_function()
  "live.user"() {uses = [@public_module::@nested_function,
                                     @public_function]} : () -> ()
Depends On D72043
Reviewed By: mehdi_amini
Differential Revision:
The file was modifiedmlir/test/IR/traits.mlir
The file was modifiedmlir/include/mlir/IR/SymbolTable.h
The file was modifiedmlir/lib/IR/SymbolTable.cpp
The file was modifiedmlir/test/lib/TestDialect/
The file was modifiedmlir/lib/IR/Module.cpp
Commit 03edd6d6a693e5bc7b0df488c4d4901cc55d3566 by riverriddle
[mlir] NFC: Remove unused variable.
The file was modifiedmlir/test/lib/IR/TestSymbolUses.cpp
Commit 989bed989a41732d1b70314bd9063ccd6e74fe5c by richard
Re-enable testing of .s tests under test/CodeGen/X86.
These were temporarily disabled in 2013 and we apparently forgot to ever
turn them back on again.
Fix spelling of flag to llvm-mc in recently-added test that wasn't
actually being run due to this.
The file was modifiedllvm/test/CodeGen/X86/lit.local.cfg
The file was modifiedllvm/test/CodeGen/X86/align-branch-boundary-default.s
Commit e68e4cbcc50ba7ab8df5e09023f15e6cc2223bef by efriedma
[GlobalISel] Change representation of shuffle masks in MachineOperand.
We're planning to remove the shufflemask operand from ShuffleVectorInst
(D72467); fix GlobalISel so it doesn't depend on that Constant.
The change to prelegalizercombiner-shuffle-vector.mir happens because
the input contains a literal "-1" in the mask (so the parser/verifier
weren't really handling it properly). We now treat it as equivalent to
"undef" in all contexts.
Differential Revision:
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
The file was modifiedllvm/lib/CodeGen/MachineFunction.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-shuffle-vector.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineInstrBuilder.h
The file was modifiedllvm/include/llvm/CodeGen/MachineOperand.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/lib/CodeGen/MachineOperand.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modifiedllvm/lib/CodeGen/MIRParser/MIParser.cpp