Commit
4e963299ee0f6f413f9d25bf7a53e6a90441f7b4
by Stanislav.MekhanoshinTemporarily removed unstable test. NFC.
|
 | llvm/test/Transforms/SROA/phi-gep.ll |
Commit
ee9a251caf1d785798c3602d473c3d2d84180d50
by maskray[ELF] Set DF_1_PIE for -pie
DF_1_PIE originated from Solaris (https://docs.oracle.com/cd/E36784_01/html/E36857/chapter6-42444.html ). GNU ld since https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=5fe2850dd96483f176858fd75c098313d5b20bc2 sets the flag on non-Solaris platforms.
It can help distinguish PIE from ET_DYN. eu-classify from elfutils uses this to recognize PIE (https://sourceware.org/git/?p=elfutils.git;a=commit;h=3f489b5c7c78df6d52f8982f79c36e9a220e8951 )
glibc uses this flag to reject dlopen'ing a PIE (https://sourceware.org/bugzilla/show_bug.cgi?id=24323 )
Reviewed By: psmith
Differential Revision: https://reviews.llvm.org/D80872
|
 | lld/test/ELF/gnu-ifunc-dyntags.s |
 | lld/test/ELF/pack-dyn-relocs.s |
 | lld/test/ELF/ppc32-call-stub-pic.s |
 | lld/test/ELF/ppc64-long-branch-pi.s |
 | lld/test/ELF/pack-dyn-relocs-relr-loop.s |
 | lld/test/ELF/pie.s |
 | lld/ELF/SyntheticSections.cpp |
 | lld/test/ELF/local-got-pie.s |
 | lld/test/ELF/arm-pie-relative.s |
 | lld/test/ELF/i386-retpoline-pic.s |
 | lld/test/ELF/riscv-gp.s |
 | lld/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s |
 | lld/test/ELF/aarch64-feature-bti.s |
 | lld/test/ELF/pack-dyn-relocs-arm2.s |
 | lld/test/ELF/ppc32-ifunc-nonpreemptible-pic.s |
 | lld/test/ELF/separate-segments.s |
 | lld/test/ELF/riscv-ifunc-nonpreemptible.s |
 | lld/test/ELF/aarch64-ifunc-bti.s |
 | lld/test/ELF/relative-dynamic-reloc-pie.s |
Commit
0ed2c046362e2248eaf3d81e235115b28d4af262
by mahesha.comp[AMDGPU/MemOpsCluster] Let mem ops clustering logic also consider number of clustered bytes
Summary: While clustering mem ops, AMDGPU target needs to consider number of clustered bytes to decide on max number of mem ops that can be clustered. This patch adds support to pass number of clustered bytes to target mem ops clustering logic.
Reviewers: foad, rampitec, arsenm, vpykhtin, javedabsar
Reviewed By: foad
Subscribers: MatzeB, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, javed.absar, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80545
|
 | llvm/lib/Target/AArch64/AArch64InstrInfo.cpp |
 | llvm/lib/Target/Hexagon/HexagonInstrInfo.h |
 | llvm/include/llvm/CodeGen/TargetInstrInfo.h |
 | llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.h |
 | llvm/lib/CodeGen/TargetInstrInfo.cpp |
 | llvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp |
 | llvm/lib/Target/X86/X86InstrInfo.h |
 | llvm/lib/CodeGen/MachineScheduler.cpp |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.h |
 | llvm/lib/Target/Lanai/LanaiInstrInfo.h |
 | llvm/lib/Target/X86/X86InstrInfo.cpp |
 | llvm/lib/Target/Lanai/LanaiInstrInfo.cpp |
Commit
ed08c4fb2e63daed03987f80a17cbececeb2c656
by Matthew.ArsenaultAMDGPU: Remove dead file
|
 | llvm/lib/Target/AMDGPU/VIInstructions.td |
Commit
20793b2aef1c7589cff1c35194f1463e747cb1a5
by Matthew.ArsenaultAMDGPU: Fix test in code directory
|
 | llvm/lib/Target/AMDGPU/sroa-before-unroll.ll |
 | llvm/test/CodeGen/AMDGPU/sroa-before-unroll.ll |
Commit
6c27c61d32fd2951a290c6d4363bd495f6feae96
by yamauchi[PGO] Improve the working set size heuristics under the partial sample PGO.
Summary: The working set size heuristics (ProfileSummaryInfo::hasHugeWorkingSetSize) under the partial sample PGO may not be accurate because the profile is partial and the number of hot profile counters in the ProfileSummary may not reflect the actual working set size of the program being compiled.
To improve this, the (approximated) ratio of the the number of profile counters of the program being compiled to the number of profile counters in the partial sample profile is computed (which is called the partial profile ratio) and the working set size of the profile is scaled by this ratio to reflect the working set size of the program being compiled and used for the working set size heuristics.
The partial profile ratio is approximated based on the number of the basic blocks in the program and the NumCounts field in the ProfileSummary and computed through the thin LTO indexing. This means that there is the limitation that the scaled working set size is available to the thin LTO post link passes only.
Reviewers: davidxl
Subscribers: mgorny, eraman, hiraditya, steven_wu, dexonsmith, arphaman, dang, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79831
|
 | llvm/lib/LTO/LTOBackend.cpp |
 | llvm/lib/Analysis/ProfileSummaryInfo.cpp |
 | llvm/include/llvm/IR/Module.h |
 | llvm/include/llvm/IR/ProfileSummary.h |
 | llvm/unittests/Analysis/ProfileSummaryInfoTest.cpp |
 | llvm/lib/Transforms/IPO/FunctionImport.cpp |
 | llvm/unittests/IR/ModuleTest.cpp |
 | llvm/lib/IR/Module.cpp |
Commit
f97a609b1763d7e343f52a7061727c4874bc26df
by julian.lettner[Darwin] Add and adopt a way to query the Darwin kernel version
This applies the learnings from [1]. What I intended as a simple cleanup made me realize that the compiler-rt version checks have two separate issues:
1) In some places (e.g., mmap flag setting) what matters is the kernel version, not the OS version. 2) OS version checks are implemented by querying the kernel version. This is not necessarily correct inside the simulators if the simulator runtime isn't aligned with the host macOS.
This commit tackles 1) by adopting a separate query function for the Darwin kernel version. 2) (and cleanups) will be dealt with in follow-ups.
[1] https://reviews.llvm.org/D78942
rdar://63031937
Reviewed By: delcypher
Differential Revision: https://reviews.llvm.org/D79965
|
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.h |
Commit
836c7dcf1238683ff18882affac1dae5ae5c5f79
by Matthew.ArsenaultDAG: Fix getNode dropping flags if there's a glue output
The AMDGPU non-strict fdiv lowering needs to introduce an FP mode switch in some cases, and has custom nodes to provide chain/glue for the intermediate FP operations. We need to propagate nofpexcept here, but getNode was dropping the flags.
Adding nofpexcept in the AMDGPU custom lowering is left to a future patch.
Also fix a second case where flags were dropped, but in this case it seems it just didn't handle this number of operands.
Test will be included in future AMDGPU patch.
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
2ecaf93525fe4b271117d3932118ecaccdacaa03
by Vedant Kumar[LiveDebugValues] Speed up removeEntryValue, NFC
Summary: Instead of iterating over all VarLoc IDs in removeEntryValue(), just iterate over the interval reserved for entry value VarLocs. This changes the iteration order, hence the test update -- otherwise this is NFC.
This appears to give an ~8.5x wall time speed-up for LiveDebugValues when compiling sqlite3.c 3.30.1 with a Release clang (on my machine):
``` ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name --- Before: 2.5402 ( 18.8%) 0.0050 ( 0.4%) 2.5452 ( 17.3%) 2.5452 ( 17.3%) Live DEBUG_VALUE analysis After: 0.2364 ( 2.1%) 0.0034 ( 0.3%) 0.2399 ( 2.0%) 0.2398 ( 2.0%) Live DEBUG_VALUE analysis ```
The change in removeEntryValue() is the only one that appears to affect wall time, but for consistency (and to resolve a pending TODO), I made the analogous changes for iterating over SpillLocKind VarLocs.
Reviewers: nikic, aprantl, jmorse, djtodoro
Subscribers: hiraditya, dexonsmith, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80684
|
 | llvm/test/DebugInfo/MIR/X86/entry-values-diamond-bbs.mir |
 | llvm/include/llvm/ADT/CoalescingBitVector.h |
 | llvm/lib/CodeGen/LiveDebugValues.cpp |
 | llvm/unittests/ADT/CoalescingBitVectorTest.cpp |
Commit
11c617c417766c7ff36a8fefb9bd2b608c971e19
by Vedant Kumar[LiveDebugValues] Add LocIndex::u32_{location,index}_t types for readability, NFC
This is per Adrian's suggestion in https://reviews.llvm.org/D80684.
|
 | llvm/lib/CodeGen/LiveDebugValues.cpp |
Commit
89d48ccabe6a950369b2bd922b1d8e987b856ac7
by Matthew.ArsenaultAMDGPU: Fix not emitting nofpexcept on fdiv expansion
In this awkward case, we have to emit custom pseudo-constrained FP wrappers. InstrEmitter concludes that since a mayRaiseFPException instruction had a chain, it can't add nofpexcept.
Test deferred until mayRaiseFPException is really set on everything.
|
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
Commit
26ebe936f3ba63a2365f660509026e11fa0d695a
by spatel[InstCombine] fix use of base VectorType; NFC
SimplifyDemandedVectorElts() bails out on ScalableVectorType anyway, but we can exit faster with the external check.
Move this to a helper function because there are likely other vector folds that we can try here.
|
 | llvm/lib/Transforms/InstCombine/InstCombineInternal.h |
 | llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp |
Commit
751f18e7d46dbb53f62c4c567e331b9bc87febf6
by maskray[ELF] Refine --export-dynamic-symbol semantics to be compatible GNU ld 2.35
GNU ld from binutils 2.35 onwards will likely support --export-dynamic-symbol but with different semantics. https://sourceware.org/pipermail/binutils/2020-May/111302.html
Differences:
1. -export-dynamic-symbol is not supported 2. --export-dynamic-symbol takes a glob argument 3. --export-dynamic-symbol can suppress binding the references to the definition within the shared object if (-Bsymbolic or -Bsymbolic-functions) 4. --export-dynamic-symbol does not imply -u
I don't think the first three points can affect any user. For the fourth point, Not implying -u can lead to some archive members unfetched. Add -u foo to restore the previous behavior.
Exact semantics:
* -no-pie or -pie: matched non-local defined symbols will be added to the dynamic symbol table. * -shared: matched non-local STV_DEFAULT symbols will not be bound to definitions within the shared object even if they would otherwise be due to -Bsymbolic, -Bsymbolic-functions, or --dynamic-list.
Reviewed By: psmith
Differential Revision: https://reviews.llvm.org/D80487
|
 | lld/test/ELF/export-dynamic-symbol.s |
 | lld/ELF/Options.td |
 | lld/ELF/Config.h |
 | lld/test/ELF/warn-backrefs.s |
 | lld/ELF/ScriptParser.cpp |
 | lld/docs/ld.lld.1 |
 | lld/ELF/Symbols.cpp |
 | lld/ELF/Driver.cpp |
 | lld/docs/ReleaseNotes.rst |
Commit
b638b63b99d66786cb37336292604a2ae3490cfd
by mliskaMove internal_uname to #if SANITIZER_LINUX scope.
Remove it from target-specific scope which corresponds to sanitizer_linux.cpp where it lives in the same macro scope.
Differential Revision: https://reviews.llvm.org/D80864
|
 | compiler-rt/lib/sanitizer_common/sanitizer_linux.h |
Commit
8f3f88d2f50d97011bf48ccc507bef033715e566
by flo[Matrix] Implement matrix index expressions ([][]).
This patch implements matrix index expressions (matrix[RowIdx][ColumnIdx]).
It does so by introducing a new MatrixSubscriptExpr(Base, RowIdx, ColumnIdx). MatrixSubscriptExprs are built in 2 steps in ActOnMatrixSubscriptExpr. First, if the base of a subscript is of matrix type, we create a incomplete MatrixSubscriptExpr(base, idx, nullptr). Second, if the base is an incomplete MatrixSubscriptExpr, we create a complete MatrixSubscriptExpr(base->getBase(), base->getRowIdx(), idx)
Similar to vector elements, it is not possible to take the address of a MatrixSubscriptExpr. For CodeGen, a new MatrixElt type is added to LValue, which is very similar to VectorElt. The only difference is that we may need to cast the type of the base from an array to a vector type when accessing it.
Reviewers: rjmccall, anemet, Bigcheese, rsmith, martong
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D76791
|
 | clang/lib/CodeGen/CGExpr.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Sema/SemaExceptionSpec.cpp |
 | clang/include/clang/Basic/Specifiers.h |
 | clang/lib/AST/Expr.cpp |
 | clang/test/SemaObjC/matrix-type-operators.m |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/lib/AST/ExprConstant.cpp |
 | clang/lib/AST/TypeLoc.cpp |
 | clang/lib/Serialization/ASTWriterStmt.cpp |
 | clang/lib/CodeGen/CodeGenFunction.h |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/lib/AST/NSAPI.cpp |
 | clang/lib/AST/StmtProfile.cpp |
 | clang/include/clang/AST/RecursiveASTVisitor.h |
 | clang/test/CodeGen/matrix-type-operators.c |
 | clang/lib/Sema/SemaCast.cpp |
 | clang/include/clang/Serialization/ASTBitCodes.h |
 | clang/lib/StaticAnalyzer/Core/ExprEngine.cpp |
 | clang/include/clang/AST/BuiltinTypes.def |
 | clang/lib/AST/Type.cpp |
 | clang/lib/Sema/TreeTransform.h |
 | clang/include/clang/AST/ASTContext.h |
 | clang/include/clang/AST/Expr.h |
 | clang/lib/CodeGen/CGValue.h |
 | clang/lib/Serialization/ASTReader.cpp |
 | clang/include/clang/AST/Stmt.h |
 | clang/lib/AST/TextNodeDumper.cpp |
 | clang/test/CodeGenCXX/matrix-type-operators.cpp |
 | clang/lib/AST/ItaniumMangle.cpp |
 | clang/lib/AST/StmtPrinter.cpp |
 | clang/tools/libclang/CXCursor.cpp |
 | clang/lib/Serialization/ASTCommon.cpp |
 | llvm/include/llvm/IR/MatrixBuilder.h |
 | clang/lib/CodeGen/CGExprScalar.cpp |
 | clang/lib/Sema/SemaInit.cpp |
 | clang/include/clang/Basic/StmtNodes.td |
 | clang/include/clang/AST/ComputeDependence.h |
 | clang/include/clang/Sema/Initialization.h |
 | clang/test/SemaCXX/matrix-type-operators.cpp |
 | clang/lib/AST/ExprClassification.cpp |
 | clang/lib/Serialization/ASTReaderStmt.cpp |
 | clang/lib/AST/ASTContext.cpp |
 | clang/lib/AST/ComputeDependence.cpp |
 | clang/test/Sema/matrix-type-operators.c |
 | clang/test/CodeGenObjC/matrix-type-operators.m |
Commit
8f0a6600306417227da72d93d11b2fa6f0be6b4c
by rnk[PDB] Use inlinee file checksum offsets directly
The inlinees section contains references to the file checksum table. The file checksum table in the PDB must have the same layout as the file checksum table in the object file, so all the existing file id references should stay valid.
Previously, we would do this: for all inlined functions: - lookup filename from checksum and string table - make that filename absolute - look up the new file id for that filename up in the new checksum table
This lead to pdbMakeAbsolute and remove_dots ending up in the hot path. We should only need to absolutify the source path once, not once every time we process an inline function from that source file.
This speeds up linking chrome PGO stage 1 net_unittests.exe from 9.203s to 8.500s (-7.6%). Looking just at time to process symbol records, it goes from ~2000ms to ~1300ms, which is consistent with the overall speedup of about 700ms. This will be less noticeable in debug builds, which have fewer inlined functions records.
|
 | lld/COFF/PDB.cpp |
Commit
1ab092b75859137c48d279a137fe5dce61a925b6
by paulatoth[libc] Expose APIGenerator.
Summary: This is split off from D79192 and exposes APIGenerator (renames to APIIndexer) for use in generating the integrations tests.
Reviewers: sivachandra
Reviewed By: sivachandra
Subscribers: tschuett, ecnelises, libc-commits
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D80832
|
 | libc/utils/HdrGen/PublicAPICommand.cpp |
 | libc/utils/HdrGen/PublicAPICommand.h |
Commit
a05f1e5ae4e0d0fc789a4caeff108fe4a50dc652
by dany.grumbergAdd DIAError.h to list of headers excluded from the LLVM_DebugInfo_PDB module
Differential Revision: https://reviews.llvm.org/D80808
|
 | llvm/include/llvm/module.modulemap |
Commit
999ea25a9eeab72f95acaa7f753f4f3a7ac450b3
by mtrofin[llvm][NFC] Cache FAM in InlineAdvisor
Summary: This simplifies the interface by storing the function analysis manager with the InlineAdvisor, and, thus, not requiring it be passed each time we inquire for an advice.
Reviewers: davidxl, asbirlea
Subscribers: eraman, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80405
|
 | llvm/lib/Transforms/IPO/Inliner.cpp |
 | llvm/lib/Analysis/InlineAdvisor.cpp |
 | llvm/include/llvm/Transforms/IPO/Inliner.h |
 | llvm/include/llvm/Analysis/InlineAdvisor.h |
Commit
382f6d37a1f2ec472a1f869be2d33078fe6ea8da
by Jonas Devlieghere[lldb/Test] Add test for man page and lldb --help output
|
 | lldb/test/Shell/Driver/TestHelp.test |
Commit
f027cfa37e6757bb2d17ac3bea944df4e06bcff4
by saugustineFor --relativenames, ignore directory 0, which is the comp_dir.
Update for upstream comments. Improve test by writing all the debug info by hand.
Reviewers: dblaikie, jhenderson
Subscribers: hiraditya, MaskRay, rupprecht, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80168
|
 | llvm/test/tools/llvm-symbolizer/relativenames.s |
 | llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp |
Commit
45fd3e4688a78d182d11733f8d633966f05d2860
by rnk[PDB] Share code to relocate .debug$[SF] sections, NFC
Sink relocateDebugChunk near the only call site.
|
 | lld/COFF/PDB.cpp |
Commit
1a4fb2edcb908d6c9141036d29b46a347b1b6f18
by jhuber6[OpenMP] Replace Clang's OpenMP RTL Definitions with OMPKinds.def
Summary: This changes Clang's generation of OpenMP runtime functions to use the types and functions defined in OpenMPKinds and OpenMPConstants. New OpenMP runtime function information should now be added to OMPKinds.def. This patch also changed the definitions of __kmpc_push_num_teams and __kmpc_copyprivate to match those found in the runtime.
Reviewers: jdoerfert
Reviewed By: jdoerfert
Subscribers: jfb, AndreyChurbanov, openmp-commits, fghanim, hiraditya, sstefan1, cfe-commits, llvm-commits
Tags: #openmp, #clang, #llvm
Differential Revision: https://reviews.llvm.org/D80222
|
 | llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp |
 | clang/test/OpenMP/teams_distribute_parallel_for_codegen.cpp |
 | llvm/test/Transforms/OpenMP/add_attributes.ll |
 | clang/test/OpenMP/teams_codegen.cpp |
 | clang/test/OpenMP/barrier_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp |
 | llvm/include/llvm/Frontend/OpenMP/OMPKinds.def |
 | clang/test/OpenMP/nvptx_teams_codegen.cpp |
 | clang/test/OpenMP/openmp_win_codegen.cpp |
 | clang/lib/CodeGen/CGOpenMPRuntime.h |
 | clang/test/OpenMP/teams_distribute_parallel_for_simd_codegen.cpp |
 | clang/test/OpenMP/target_teams_distribute_parallel_for_codegen.cpp |
 | clang/test/OpenMP/teams_distribute_codegen.cpp |
 | llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h |
 | clang/lib/CodeGen/CGOpenMPRuntime.cpp |
 | clang/test/OpenMP/teams_distribute_simd_codegen.cpp |
 | clang/test/OpenMP/target_teams_thread_limit_codegen.cpp |
 | clang/test/OpenMP/target_teams_num_teams_codegen.cpp |
Commit
66a14d151efb8d142e23f88166e76bfe3730adda
by Louis Dionne[libc++] NFC: Minor refactoring in std::array
|
 | libcxx/include/array |
Commit
7cfded350a7edc87f4a67f84e4261e44954600d0
by lei[PowerPC] Add clang option -m[no-]pcrel
Summary: Add user-facing front end option to turn off pc-relative memops. This will be compatible with gcc.
Reviewers: stefanp, nemanjai, hfinkel, power-llvm-team, #powerpc, NeHuang, saghir
Reviewed By: stefanp, NeHuang, saghir
Subscribers: saghir, wuzish, shchenz, cfe-commits, kbarton, echristo
Tags: #clang, #powerpc
Differential Revision: https://reviews.llvm.org/D80757
|
 | clang/lib/Basic/Targets/PPC.h |
 | clang/test/Driver/ppc-pcrel.cpp |
 | clang/lib/Basic/Targets/PPC.cpp |
 | clang/include/clang/Driver/Options.td |
Commit
23776a178f8379e1d9b4d79952bac916c1fa70fe
by Louis Dionne[libc++] Add assertions on OOB accesses in std::array when the debug mode is enabled
Like we do for empty std::array, make sure we have assertions in place for obvious out-of-bounds issues in std::array when the debug mode is enabled (which isn't by default).
|
 | libcxx/include/array |
Commit
6bedfaf5200474f9a72b059f0d99dd39ece1c03e
by dkszelethus[analyzer][MallocChecker] Fix the incorrect retrieval of the from argument in realloc()
In the added testfile, the from argument was recognized as &Element{SymRegion{reg_$0<long * global_a>},-1 S64b,long} instead of reg_$0<long * global_a>.
|
 | clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp |
 | clang/test/Analysis/malloc.c |
Commit
959517ace1cd9e8bcd0af3be6259dd4d78a9bd84
by AkiraClean up clang/test/CodeGenObjC/os_log.m
Don't run optimization passes at -O2 and remove unneeded #ifdef and test cases.
|
 | clang/test/CodeGenObjC/os_log.m |
Commit
06aaf0b3431f29b6debbb96fdd92ada896f336ff
by ogirouxUpdated synopsis of <atomic> to match what is implemented
|
 | libcxx/include/atomic |