SuccessChanges

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

Summary

  1. [ARM] Fix in ICE when retrieving the number of micro-ops for vlldm/vlstm (details)
  2. [NFC] Guard scudo_standalone's optional dependency on GWP-ASan behind (details)
  3. [PGO][PGSO] Enable size optimizations in code gen / target passes for (details)
  4. [DAGCombiner] fold shift-trunc-shift to shift-mask-trunc (2nd try) (details)
  5. [InstSimplify] improve test coverage for insert+splat; NFC (details)
  6. [profile] Fix a crash when -fprofile-remapping-file= triggers an error (details)
  7. Revert "[VectorUtils] Introduce the Vector Function Database (details)
  8. [RISCV] Move DebugLoc Copy into CompressInstEmitter (details)
  9. Correct gcc vector splat conversion from float to int-vector (details)
  10. LanguageRuntime: Simplify NSException::GetSummary() output (details)
  11. [libc++] Ensure __config always defines certain configuration macros. (details)
  12. Fix -Wswitch-coverage warning in clang-tidy after ak_addrspace (details)
  13. Call objc_retainBlock before passing a block as a variadic argument (details)
  14. Revert "[libomptarget] Move resource id functions into target specific (details)
  15. [NFC] Change SelectionDAG::getMemBasePlusOffset() to use int64_t (details)
  16. [NFC] Add a SDValue overload for SelectionDAG::getMemBasePlusOffset() (details)
  17. [NFC] Implement SelectionDAG::getObjectPtrOffset() using (details)
  18. [NFC] Use SelectionDAG::getMemBasePlusOffset() instead of (details)
  19. [LSAN] Increase stack space for guard-page.c test (details)
  20. [lldb/CMake] Rename LLDB_DISABLE_PYTHON to LLDB_ENABLE_PYTHON (details)
  21. [lldb/CMake] Initialize LLDB_ENABLE_POSIX based on the UNIX variable. (details)
  22. [OPENMP]Fix skipping of functions body. (details)
  23. [Driver] Use .init_array for all gcc installations and simplify (details)
  24. [lldb/SWIG] Modulerize lldb.swig so parts of it can be reused. (details)
  25. [ubsan] Enable testing of .m files (details)
  26. [Legalizer] More detailed debugging printing in main loop (details)
  27. [Legalizer] Refactoring out legalizeMachineFunction (details)
  28. [Legalizer] Making artifact combining order-independent (details)
  29. [Mips] Fix gcc -Wunused-but-set-variable in -DLLVM_ENABLE_ASSERTIONS=Off (details)
  30. [OpenMP][Docs] Claim loop tiling. (details)
  31. [lit] Small cleanups. NFCI (details)
  32. [PowerPC] Add Support for indirect calls on AIX. (details)
  33. [analyzer] CStringChecker: Fix a crash on unknown value passed to (details)
  34. [libcxx] [test] Include missing headers. (NFC) (details)
  35. [c++20] Improve phrasing of diagnostic for missing #include <compare>. (details)
  36. PR44268: Fix crash if __builtin_object_size is applied to a heap (details)
  37. [Driver] Default to -momit-leaf-frame-pointer for AArch64 (details)
  38. [AArch64] Save FP for leaf functions when disabling frame pointer (details)
  39. [clang] Move CLANG_BOOTSTRAP_CMAKE_ARGS above PASSTHROUGH_VARIABLES (details)
  40. gn build: add deps I failed to add in b2508ce85c1 (details)
  41. [Attributor] Reuse the IPConstantProp tests for the Attributor (details)
  42. [Attributor] Only replace instruction operands (details)
  43. [NFC] Rename ClangASTEmitters.h -> ASTTableGen.h (details)
  44. [NFC] Correct accidental use of tabs. (details)
  45. Introduce some types and functions to make it easier to work with the (details)
  46. Add a function to get the ExceptionSpecInfo of a function type; NFC. (details)
  47. Extract out WrappedRecord as a convenience base class; NFC. (details)
  48. Enable better node-hierarchy metaprogramming; NFC. (details)
  49. Extract the TypeClass <-> TypeCode map into a .def file; NFC. (details)
  50. Standardize the reader methods in ASTReader; NFC. (details)
  51. Abstract serialization: TableGen "basic" reader/writer CRTP classes that (details)
  52. Abstract serialization: TableGen the (de)serialization code for Types. (details)
  53. [Attributor][NFC] Simplify debug printing for abstract attributes (details)
  54. [Attributor][NFC] Reorder test functions (details)
  55. [Attributor][NFC] Add more simple test situations for callbacks (details)
  56. [Attributor] Annotate call sites of declarations with a callback (details)
  57. MSVC build fix: forget some unneeded and incorrect friends. (details)
  58. [ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests (details)
Commit 8e8e3181aa52301f505a7445f05b21d7fc6882a9 by momchil.velikov
[ARM] Fix in ICE when retrieving the number of micro-ops for vlldm/vlstm
The big switch in `ARMBaseInstrInfo::getNumMicroOps` is missing cases
for
`VLLDM` and `VLSTM`, which are currently defined with itineraries having
a dynamic count of micro-ops.
Assuming an optimistic case in which these instruction do not actually
perform loads or stores, and with the idea that Armv8-m cores are
supposed to use the new style scheduling models, this patch just sets
the itinerary for those two instructions to `NoItinerary`.
Differential Revision: https://reviews.llvm.org/D71266
The file was modifiedllvm/lib/Target/ARM/ARMInstrVFP.td
The file was addedllvm/test/CodeGen/ARM/vlldm-vlstm-uops.mir
Commit d6c445ea6907c7165ace0167327d557b0a786604 by 31459023+hctim
[NFC] Guard scudo_standalone's optional dependency on GWP-ASan behind
flags.
The file was modifiedcompiler-rt/lib/scudo/standalone/CMakeLists.txt
Commit ed50e6060b1c51ec4a5dad6c01a64a5f1526cdb5 by yamauchi
[PGO][PGSO] Enable size optimizations in code gen / target passes for
cold code.
Summary: Split off of D67120.
Reviewers: davidxl
Subscribers: hiraditya, asb, rbar, johnrusso, simoncook, sabuasal,
niosHD, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck,
brucehoult, the_o, PkmX, jocewei, lenary, s.egerton, pzheng,
sameer.abuasal, apazos, luismarques, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71288
The file was modifiedllvm/test/CodeGen/X86/powi.ll
The file was addedllvm/test/CodeGen/X86/conditional-tailcall-pgso.ll
The file was modifiedllvm/test/CodeGen/X86/slow-incdec.ll
The file was modifiedllvm/test/CodeGen/X86/x86-64-bittest-logic.ll
The file was modifiedllvm/test/CodeGen/X86/store-zero-and-minus-one.ll
The file was modifiedllvm/lib/Transforms/Utils/SizeOpts.cpp
The file was modifiedllvm/test/CodeGen/X86/avx-cvt.ll
The file was modifiedllvm/test/CodeGen/X86/splat-for-size.ll
The file was modifiedllvm/test/CodeGen/RISCV/tail-calls.ll
The file was modifiedllvm/test/CodeGen/X86/avx512-mask-op.ll
The file was modifiedllvm/test/CodeGen/X86/loop-blocks.ll
The file was addedllvm/test/CodeGen/X86/shrink-compare-pgso.ll
The file was modifiedllvm/test/CodeGen/AArch64/max-jump-table.ll
The file was modifiedllvm/test/CodeGen/X86/immediate_merging64.ll
The file was modifiedllvm/test/CodeGen/X86/fshl.ll
The file was modifiedllvm/test/CodeGen/X86/immediate_merging.ll
The file was addedllvm/test/CodeGen/AArch64/arm64-memset-to-bzero-pgso.ll
The file was modifiedllvm/test/CodeGen/X86/fshr.ll
The file was modifiedllvm/test/CodeGen/X86/cmov-into-branch.ll
The file was modifiedllvm/test/CodeGen/X86/x86-64-double-shifts-Oz-Os-O2.ll
The file was modifiedllvm/test/CodeGen/X86/haddsub.ll
The file was modifiedllvm/test/CodeGen/X86/bypass-slow-division-tune.ll
The file was modifiedllvm/test/CodeGen/X86/x86-repmov-copy-eflags.ll
The file was modifiedllvm/test/CodeGen/X86/fold-load-unops.ll
The file was modifiedllvm/test/CodeGen/X86/switch-density.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-256-v4.ll
The file was modifiedllvm/test/CodeGen/X86/rounding-ops.ll
The file was modifiedllvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode.ll
The file was addedllvm/test/CodeGen/X86/memcmp-pgso.ll
The file was modifiedllvm/test/CodeGen/X86/fixup-lea.ll
The file was modifiedllvm/test/CodeGen/X86/tail-opts.ll
The file was modifiedllvm/test/CodeGen/X86/memcpy.ll
The file was modifiedllvm/test/CodeGen/X86/materialize.ll
The file was modifiedllvm/test/CodeGen/X86/test-vs-bittest.ll
The file was modifiedllvm/test/CodeGen/ARM/constantpool-align.ll
The file was modifiedllvm/test/CodeGen/X86/atom-pad-short-functions.ll
Commit 2f0c7fd2dbd06ae5f25b0c72b2b8f2a1c5baeb72 by spatel
[DAGCombiner] fold shift-trunc-shift to shift-mask-trunc (2nd try)
The initial attempt (rG89633320) botched the logic by reversing the
source/dest types. Added x86 tests for additional coverage. The vector
tests show a potential improvement (fold vector load instead of
broadcasting), but that's a known/existing problem.
This fold is done in IR by instcombine, and we have a special form of it
already here in DAGCombiner, but we want the more general transform too:
https://rise4fun.com/Alive/3jZm
Name: general Pre: (C1 + zext(C2) < 64)
%s = lshr i64 %x, C1
%t = trunc i64 %s to i16
%r = lshr i16 %t, C2
=>
%s2 = lshr i64 %x, C1 + zext(C2)
%a = and i64 %s2, zext((1 << (16 - C2)) - 1)
%r = trunc %a to i16
Name: special Pre: C1 == 48
%s = lshr i64 %x, C1
%t = trunc i64 %s to i16
%r = lshr i16 %t, C2
=>
%s2 = lshr i64 %x, C1 + zext(C2)
%r = trunc %s2 to i16
...because D58017 exposes a regression without this fold.
The file was modifiedllvm/test/CodeGen/PowerPC/trunc-srl-load.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shift-lshr-256.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/AArch64/shift-amount-mod.ll
The file was modifiedllvm/test/CodeGen/X86/shift-amount-mod.ll
Commit 940600ae4172d34232674d7e6f191dcff009df74 by spatel
[InstSimplify] improve test coverage for insert+splat; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/shufflevector.ll
Commit 193da743db63bc7299717f583a63e68d55408731 by maskray
[profile] Fix a crash when -fprofile-remapping-file= triggers an error
Reviewed By: wmi
Differential Revision: https://reviews.llvm.org/D71485
The file was addedclang/test/CodeGenCXX/Inputs/profile-remap-error.map
The file was addedclang/test/CodeGenCXX/profile-remap-error.cpp
The file was modifiedllvm/lib/Transforms/IPO/SampleProfile.cpp
Commit 19f73f0d1b8d4f4a7b7451fea33a35015fe0942d by francesco.petrogalli
Revert "[VectorUtils] Introduce the Vector Function Database
(VFDatabase)."
This reverts commit 0be81968a283fd4161cb9ac9748d5ed200926292.
The VFDatabase needs some rework to be able to handle vectorization and
subsequent scalarization of intrinsics in out-of-tree versions of the
compiler. For more details, see the discussion in
https://reviews.llvm.org/D67572.
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/lib/Transforms/Utils/InjectTLIMappings.cpp
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/lib/Analysis/LoopAccessAnalysis.cpp
The file was modifiedllvm/unittests/Analysis/VectorFunctionABITest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp
The file was modifiedllvm/lib/Transforms/Utils/ModuleUtils.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
The file was modifiedllvm/include/llvm/Analysis/TargetLibraryInfo.h
The file was modifiedllvm/lib/Analysis/LazyCallGraph.cpp
Commit a0f43b0043581b37b10d105a85f0653704d3657b by selliott
[RISCV] Move DebugLoc Copy into CompressInstEmitter
Summary: This copy ensures that debug location information is kept for
compressed instructions. There are places where both compressInstruction
and uncompressInstruction are called that were not doing this copy,
discarding some debug info.
This change merely moves the copy into the generated file, so you cannot
forget to copy the location over when compressing or uncompressing.
Reviewers: asb, luismarques
Reviewed By: luismarques
Subscribers: sameer.abuasal, aprantl, hiraditya, rbar, johnrusso,
simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27,
MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult,
the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, pzheng,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67493
The file was addedllvm/test/MC/RISCV/compress-debug-info.s
The file was modifiedllvm/utils/TableGen/RISCVCompressInstEmitter.cpp
The file was modifiedllvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
Commit 348f22eac83d9a3ee946e41be43fe507f04a89b6 by erich.keane
Correct gcc vector splat conversion from float to int-vector
In looking into some other code, I came across this issue where a float
converted to a gcc integer vector via a splat causes it to miss the
float-to-integral cast, which causes some REALLY strange codegen bugs.
The AST looked like:
`-ImplicitCastExpr <col:13>
'gcc_int_2':'__attribute__((__vector_size__(2 * sizeof(int)))) int'
<VectorSplat>
       `-ImplicitCastExpr <col:13> 'float' <LValueToRValue>
                 `-DeclRefExpr <col:13> 'float' lvalue ParmVar
                 0x556f16a5dc90 'f' 'float'
Despite the type of the VectorSplat cast as printed, it ended up
becoming a vector of float, which caused non-matching instructions. For
example, IntVector + a float constant resulted in:
add <2 x i32> %8, <2 x float> <float 3.000000e+00, float 3.000000e+00>
This patch corrects the conversion so that the float is first converted
to an integral, THEN splatted.
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/CodeGenCXX/vector-splat-conversion.cpp
Commit 2c91d5ba83156900944c82bb8feb1e340adb8ae4 by medismail.bennani
LanguageRuntime: Simplify NSException::GetSummary() output
Summary: Right now, NSException::GetSummary() has the following output:
"name: $exception_name - reason: $exception_reason"
It would be better to simplify the output by removing the name and only
showing the exception's reason. This way, annotations would look nicer
in the editor, and would be a shorter summary in the Variables
Inspector.
Accessing the exception's name can still be done by expanding the
NSException object in the Variables Inspector.
rdar://54770115
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D71311
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/source/Plugins/Language/ObjC/NSException.cpp
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/main.m
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
The file was modifiedlldb/packages/Python/lldbsuite/test/lang/objc/exceptions/TestObjCExceptions.py
Commit fda3825c7a96a04b08d2e3fa55ad84d78addcb19 by eric
[libc++] Ensure __config always defines certain configuration macros.
The file was modifiedlibcxx/include/__mutex_base
The file was modifiedlibcxx/include/__config
Commit 5623bd52acd34db2e9cfc11d1510407610a14db0 by echristo
Fix -Wswitch-coverage warning in clang-tidy after ak_addrspace
introduction.
Differential Revision: https://reviews.llvm.org/D71486 Reviewed By:
rsmith
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
Commit a0a670614a36f1686c5086033bef85800128cf66 by Akira
Call objc_retainBlock before passing a block as a variadic argument
Copy the block to the heap before passing it to the callee in case the
block escapes in the callee.
rdar://problem/55683462
Differential Revision: https://reviews.llvm.org/D71431
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/CodeGenObjC/arc-blocks.m
The file was modifiedclang/docs/AutomaticReferenceCounting.rst
Commit dd8a7fcdd73dd63529b81bf9f72c7529dfe99ec3 by a.bataev
Revert "[libomptarget] Move resource id functions into target specific
code, implement for amdgcn"
This reverts commit dbb3fec8adfc4ac3fbf31f51f294427dbabbebb2 since it
breaks the NVPTX tests.
The file was modifiedopenmp/libomptarget/deviceRTLs/nvptx/src/target_impl.h
The file was modifiedopenmp/libomptarget/deviceRTLs/common/src/support.cu
The file was modifiedopenmp/libomptarget/deviceRTLs/common/support.h
The file was modifiedopenmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
Commit d9bb70acd7f6da7c4637826d5ae942ae61bf9494 by Alexander.Richardson
[NFC] Change SelectionDAG::getMemBasePlusOffset() to use int64_t
Summary: This change is preparatory work to use this helper functions in
more places. Currently the function only allows positive offsets, but
there are cases where we want to subtract an offset from an existing
pointer.
The motivation for this change is our out-of-tree CHERI backend
(https://github.com/CTSRD-CHERI/llvm-project). We use a separate
register type to store pointers (128-bit capabilities, which are
effectively unforgeable and monotonic fat pointers). These capabilities
permit a reduced set of operations and therefore use a separate
ValueType (iFATPTR). to represent pointers implemented as capabilities.
Therefore, we need to avoid using ISD::ADD for our patterns that operate
on pointers and need to use a function that chooses ISD::ADD or a new
ISD::PTRADD opcode depending on the value type.
We originally added a new DAG.getPointerAdd() function, but after this
patch series we can modify the implementation of getMemBasePlusOffset()
instead. Avoiding direct uses of ISD::ADD for pointer types will
significantly reduce the amount of assertion/instruction selection
failures for us in future upstream merges.
Reviewers: spatel
Reviewed By: spatel
Subscribers: merge_guards_bot, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71204
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h
Commit ea8888d1af3a992d82d1ff3bf99537220828d388 by Alexander.Richardson
[NFC] Add a SDValue overload for SelectionDAG::getMemBasePlusOffset()
Summary: This change is preparatory work to use this helper functions in
more places. Currently the function only allows integer constants
offsets, but there are cases where we can use an existing SDValue
parameter.
The motivation for this change is our out-of-tree CHERI backend
(https://github.com/CTSRD-CHERI/llvm-project). We use a separate
register type to store pointers (128-bit capabilities, which are
effectively unforgeable and monotonic fat pointers). These capabilities
permit a reduced set of operations and therefore use a separate
ValueType (iFATPTR). to represent pointers implemented as capabilities.
Therefore, we need to avoid using ISD::ADD for our patterns that operate
on pointers and need to use a function that chooses ISD::ADD or a new
ISD::PTRADD opcode depending on the value type.
We originally added a new DAG.getPointerAdd() function, but after this
patch series we can modify the implementation of getMemBasePlusOffset()
instead. Avoiding direct uses of ISD::ADD for pointer types will
significantly reduce the amount of assertion/instruction selection
failures for us in future upstream merges.
Reviewers: spatel, craig.topper
Reviewed By: spatel, craig.topper
Subscribers: craig.topper, merge_guards_bot, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71205
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit fc83f53a86d802fc2d56aac4eb3dc53998751042 by Alexander.Richardson
[NFC] Implement SelectionDAG::getObjectPtrOffset() using
getMemBasePlusOffset()
Summary: This change is preparatory work to use this helper functions in
more places. In order to make this change, getMemBasePlusOffset() has
been extended to also take a SDNodeFlags parameter.
The motivation for this change is our out-of-tree CHERI backend
(https://github.com/CTSRD-CHERI/llvm-project). We use a separate
register type to store pointers (128-bit capabilities, which are
effectively unforgeable and monotonic fat pointers). These capabilities
permit a reduced set of operations and therefore use a separate
ValueType (iFATPTR). to represent pointers implemented as capabilities.
Therefore, we need to avoid using ISD::ADD for our patterns that operate
on pointers and need to use a function that chooses ISD::ADD or a new
ISD::PTRADD opcode depending on the value type.
We originally added a new DAG.getPointerAdd() function, but after this
patch series we can modify the implementation of getMemBasePlusOffset()
instead. Avoiding direct uses of ISD::ADD for pointer types will
significantly reduce the amount of assertion/instruction selection
failures for us in future upstream merges.
Reviewers: spatel
Reviewed By: spatel
Subscribers: merge_guards_bot, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71206
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h
Commit 11448eeb72e1392f9f4ad072866c2c6dc82d14bc by Alexander.Richardson
[NFC] Use SelectionDAG::getMemBasePlusOffset() instead of
getNode(ISD::ADD)
Summary: To find potential opportunities to use getMemBasePlusOffset() I
looked at all ISD::ADD uses found with the regex
getNode\(ISD::ADD,.+,.+Ptr in lib/CodeGen/SelectionDAG. If this patch is
accepted I will convert the files in the individual backends too.
The motivation for this change is our out-of-tree CHERI backend
(https://github.com/CTSRD-CHERI/llvm-project). We use a separate
register type to store pointers (128-bit capabilities, which are
effectively unforgeable and monotonic fat pointers). These capabilities
permit a reduced set of operations and therefore use a separate
ValueType (iFATPTR). to represent pointers implemented as capabilities.
Therefore, we need to avoid using ISD::ADD for our patterns that operate
on pointers and need to use a function that chooses ISD::ADD or a new
ISD::PTRADD opcode depending on the value type.
We originally added a new DAG.getPointerAdd() function, but after this
patch series we can modify the implementation of getMemBasePlusOffset()
instead. Avoiding direct uses of ISD::ADD for pointer types will
significantly reduce the amount of assertion/instruction selection
failures for us in future upstream merges.
Reviewers: spatel
Reviewed By: spatel
Subscribers: merge_guards_bot, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71207
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 9cb7a1be2a430a50fb5644b3f48d4a1544034fb9 by Alexander.Richardson
[LSAN] Increase stack space for guard-page.c test
Summary: When running the tests on a Ubuntu 18.04 machine this test is
crashing for me inside the runtime linker. My guess is that it is trying
to save more registers (possibly large vector ones) and the current
stack space is not sufficient.
Reviewers: samsonov, kcc, eugenis
Reviewed By: eugenis
Subscribers: eugenis, merge_guards_bot, #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D71461
The file was modifiedcompiler-rt/test/lsan/TestCases/Linux/guard-page.c
Commit 4e26cf2cfb2b140a33ec236153cb2f23b5c44127 by Jonas Devlieghere
[lldb/CMake] Rename LLDB_DISABLE_PYTHON to LLDB_ENABLE_PYTHON
This matches the naming scheme used by LLVM and all the other optional
dependencies in LLDB.
Differential revision: https://reviews.llvm.org/D71482
The file was modifiedlldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
The file was modifiedlldb/test/API/lldbtest.py
The file was modifiedlldb/source/API/SystemInitializerFull.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
The file was modifiedlldb/docs/resources/build.rst
The file was modifiedlldb/test/CMakeLists.txt
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
The file was modifiedlldb/CMakeLists.txt
The file was modifiedlldb/cmake/modules/LLDBConfig.cmake
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
The file was modifiedlldb/source/Commands/CommandObjectFrame.cpp
The file was modifiedlldb/unittests/ScriptInterpreter/CMakeLists.txt
The file was modifiedlldb/source/Interpreter/CommandObjectScript.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
The file was modifiedlldb/test/Shell/lit.cfg.py
The file was modifiedlldb/test/API/lit.site.cfg.py.in
The file was modifiedlldb/source/Core/ValueObject.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h
The file was modifiedlldb/docs/CMakeLists.txt
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
The file was modifiedlldb/source/Commands/CommandObjectType.cpp
The file was modifiedlldb/source/API/CMakeLists.txt
The file was modifiedlldb/source/API/SBHostOS.cpp
The file was modifiedlldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h
The file was modifiedlldb/test/Shell/lit.site.cfg.py.in
The file was modifiedlldb/tools/intel-features/CMakeLists.txt
The file was modifiedlldb/include/lldb/Host/Config.h.cmake
The file was modifiedlldb/source/Plugins/ScriptInterpreter/CMakeLists.txt
Commit e8af4fd42da3580f9bda5202f381bf92d07f4b9c by Jonas Devlieghere
[lldb/CMake] Initialize LLDB_ENABLE_POSIX based on the UNIX variable.
The file was modifiedlldb/cmake/modules/LLDBGenerateConfig.cmake
Commit 8035bb4a6573f7d20f17044a68a1405691000525 by a.bataev
[OPENMP]Fix skipping of functions body.
When parsing the code with OpenMP and the function's body must be
skipped, need to skip also OpenMP annotation tokens. Otherwise the
counters for braces/parens are unbalanced and parsing fails.
The file was addedclang/test/OpenMP/crash-skipped-bodies-template-inst.cpp
The file was modifiedclang/include/clang/Parse/RAIIObjectsForParser.h
The file was modifiedclang/lib/Parse/Parser.cpp
The file was modifiedclang/test/OpenMP/openmp_check.cpp
The file was modifiedclang/include/clang/Parse/Parser.h
The file was modifiedclang/lib/Parse/ParseOpenMP.cpp
Commit e4fce659a759ecdd59ceee750f1ff9b44f9de3f3 by maskray
[Driver] Use .init_array for all gcc installations and simplify
Generic_ELF -fno-use-init-array rules
D39317 made clang use .init_array when no gcc installations is found.
This change changes all gcc installations to use .init_array .
GCC 4.7 by default stopped providing .ctors/.dtors compatible crt files,
and stopped emitting .ctors for __attribute__((constructor)).
.init_array should always work.
FreeBSD rules are moved to FreeBSD.cpp to make Generic_ELF rules clean.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D71434
The file was modifiedclang/test/Driver/constructors.c
The file was modifiedclang/lib/Driver/ToolChains/FreeBSD.h
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
The file was modifiedclang/lib/Driver/ToolChains/FreeBSD.cpp
Commit 3a6da1122b990386edeba0987d0d1fdc9c8dc53d by Jonas Devlieghere
[lldb/SWIG] Modulerize lldb.swig so parts of it can be reused.
This groups the headers and interfaces in separate files that can be
included by other swig files for different languages.
The file was addedlldb/scripts/interfaces.swig
The file was modifiedlldb/scripts/lldb.swig
The file was addedlldb/scripts/headers.swig
Commit ed83942bc02501c62b55f77cba688263ea35221a by Vedant Kumar
[ubsan] Enable testing of .m files
This allows `.m` test files, like the existing Misc/bool.m, to be
tested.
The file was modifiedcompiler-rt/test/ubsan/lit.common.cfg.py
Commit 8207c81597adab5a06b50339e5ee2891f6e453bf by rtereshin
[Legalizer] More detailed debugging printing in main loop
The file was modifiedllvm/lib/CodeGen/GlobalISel/Legalizer.cpp
Commit 18bf9670aac901f71bc43ac55c5feb603555a1f6 by rtereshin
[Legalizer] Refactoring out legalizeMachineFunction
and introducing new unittests/CodeGen/GlobalISel/LegalizerTest.cpp
relying on it to unit test the entire legalizer algorithm (including the
top-level main loop).
See also https://reviews.llvm.org/D71448
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/GlobalISel/BUILD.gn
The file was modifiedllvm/lib/CodeGen/GlobalISel/Legalizer.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/Legalizer.h
The file was addedllvm/unittests/CodeGen/GlobalISel/LegalizerTest.cpp
The file was modifiedllvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
Commit 8731799fc6cf70bf4de5688ada506a222272a6a2 by rtereshin
[Legalizer] Making artifact combining order-independent
Legalization algorithm is complicated by two facts: 1) While regular
instructions should be possible to legalize in
  an isolated, per-instruction, context-free manner, legalization
  artifacts can only be eliminated in pairs, which could be deeply, and
  ultimately arbitrary nested: { [ () ] }, where which paranthesis kind
  depicts an artifact kind, like extend, unmerge, etc. Such structure
  can only be fully eliminated by simple local combines if they are
  attempted in a particular order (inside out), or alternatively by
  repeated scans each eliminating only one innermost pair, resulting in
  O(n^2) complexity. 2) Some artifacts might in fact be regular
instructions that could (and
  sometimes should) be legalized by the target-specific rules. Which
  means failure to eliminate all artifacts on the first iteration is
  not a failure, they need to be tried as instructions, which may
  produce more artifacts, including the ones that are in fact regular
  instructions, resulting in a non-constant number of iterations
  required to finish the process.
I trust the recently introduced termination condition (no new artifacts
were created during as-a-regular-instruction-retrial of artifacts not
eliminated on the previous iteration) to be efficient in providing
termination, but only performing the legalization in full if and only if
at each step such chains of artifacts are successfully eliminated in
full as well.
Which is currently not guaranteed, as the artifact combines are applied
only once and in an arbitrary order that has to do with the order of
creation or insertion of artifacts into their worklist, which is a no
particular order.
In this patch I make a small change to the artifact combiner, making it
to re-insert into the worklist immediate (modulo a look-through copies)
artifact users of each vreg that changes its definition due to an
artifact combine.
Here the first scan through the artifacts worklist, while not being done
in any guaranteed order, only needs to find the innermost pair(s) of
artifacts that could be immediately combined out. After that the process
follows def-use chains, making them shorter at each step, thus combining
everything that can be combined in O(n) time.
Reviewers: volkan, aditya_nandakumar, qcolombet, paquette, aemerson,
dsanders
Reviewed By: aditya_nandakumar, paquette
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71448
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-merge-values.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-combiner-zext-trunc-crash.mir
The file was modifiedllvm/lib/Target/Mips/MipsRegisterBankInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fcopysign.mir
The file was modifiedllvm/unittests/CodeGen/GlobalISel/LegalizerTest.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-sext.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/Legalizer.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/retry-artifact-combine.mir
Commit 40c288b75c1d9cc94d0409ac00b2421eb8a4c75b by maskray
[Mips] Fix gcc -Wunused-but-set-variable in -DLLVM_ENABLE_ASSERTIONS=Off
builds after D71028
The file was modifiedllvm/lib/Target/Mips/MipsExpandPseudo.cpp
Commit 2a789dd0ad884cbd73b962b6b07cf48e2178d2c9 by llvm-project
[OpenMP][Docs] Claim loop tiling.
The file was modifiedclang/docs/OpenMPSupport.rst
Commit cf252240e8819d0c90a5e10f773078bdeba33e44 by julian.lettner
[lit] Small cleanups. NFCI
Remove unnecessary (argument same as default), cleanup imports, use
"pythonic" names for variables, and general formatting.
The file was modifiedllvm/utils/lit/lit/run.py
The file was modifiedllvm/utils/lit/lit.py
The file was modifiedllvm/utils/lit/lit/cl_arguments.py
The file was modifiedllvm/utils/lit/lit/__init__.py
The file was modifiedllvm/utils/lit/tests/unit/TestRunner.py
The file was modifiedllvm/utils/lit/lit/LitTestCase.py
The file was modifiedllvm/utils/lit/lit/main.py
Commit 93faa237da8ddeb9e2ad91980387bd4d633369a9 by sd.fertile
[PowerPC] Add Support for indirect calls on AIX.
Extends the desciptor-based indirect call support for 32-bit codegen,
and enables indirect calls for AIX.
In-depth Description: In a function descriptor based ABI, a function
pointer points at a descriptor structure as opposed to the function's
entry point. The descriptor takes the form of 3 pointers: 1 for the
function's entry point, 1 for the TOC anchor of the module containing
the function definition, and 1 for the environment pointer:
struct FunctionDescriptor {
void *EntryPoint;
void *TOCAnchor;
void *EnvironmentPointer;
};
An indirect call has several steps of loading the the information from
the descriptor into the proper registers for setting up the call. Namely
it has to:
1) Save the caller's TOC pointer into the TOC save slot in the linkage
  area, and then load the callee's TOC pointer into the TOC register
  (GPR 2 on AIX).
2) Load the function descriptor's entry point into the count register.
3) Load the environment pointer into the environment pointer register
  (GPR 11 on AIX).
4) Perform the call by branching on count register.
5) Restore the caller's TOC pointer after returning from the indirect
call.
A couple important caveats to the above:
- There is no way to directly load a value from memory into the count
register.
Instead we populate the count register by loading the entry point
address into
a gpr and then moving the gpr to the count register.
- The TOC restore has to come immediately after the branch on count
register
instruction (i.e., the 1st instruction executed after we return from
the
call). This is an implementation limitation. We could, in theory,
schedule
the restore elsewhere as long as no uses of the TOC pointer fall in
between
the call and the restore; however, to keep it simple, we insert a
pseudo
instruction that represents both the indirect branch instruction and
the
load instruction that restores the caller's TOC from the linkage area.
As
they flow through the compiler as a single pseudo instruction, nothing
can be
inserted between them and the caller's TOC is then valid at any use.
Differtential Revision: https://reviews.llvm.org/D70724
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was addedllvm/test/CodeGen/PowerPC/aix-indirect-call.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCSubtarget.h
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrFormats.td
The file was modifiedllvm/lib/Target/PowerPC/P9InstrResources.td
The file was addedllvm/test/CodeGen/PowerPC/aix-trampoline.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/Target/PowerPC/PPCFrameLowering.cpp
Commit f450dd63a14d6cb16418f6a6f4de26916502c13f by Artem Dergachev
[analyzer] CStringChecker: Fix a crash on unknown value passed to
strlcat.
Checkers should always account for unknown values.
Also use a slightly more high-level API that naturally avoids the
problem.
The file was modifiedclang/test/Analysis/bsd-string.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
Commit 5688f168528377d1c55fe1feff82c9caa21a7c0a by stl
[libcxx] [test] Include missing headers. (NFC)
libcxx/test/std/containers/sequences/array/at.pass.cpp Need to include
<stdexcept> for std::out_of_range.
libcxx/test/std/localization/locale.categories/category.time/* Need to
include <ios> for std::ios.
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_many.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_year.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/array/at.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.put/locale.time.put.members/put1.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date_wide.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get/locale.time.get.members/get_date.pass.cpp
The file was modifiedlibcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp
Commit 38c3b5d562ac6a5ab0ef5503838aad362af866e0 by richard
[c++20] Improve phrasing of diagnostic for missing #include <compare>.
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/SemaCXX/std-compare-cxx2a.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
Commit c5b890e922432bd80a5e3c6d82994ef4cdc41900 by richard
PR44268: Fix crash if __builtin_object_size is applied to a heap
allocation.
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/test/SemaCXX/builtin-object-size-cxx14.cpp
Commit 074323c84658e51522e7d8d3d0179e53004b219c by maskray
[Driver] Default to -momit-leaf-frame-pointer for AArch64
This matches https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html
> -momit-leaf-frame-pointer
> -mno-omit-leaf-frame-pointer
>
>   Omit or keep the frame pointer in leaf functions. The former
behavior is the default.
-mno-omit-leaf-frame-pointer is currently a no-op because
TargetOptions::DisableFramePointerElim is only considered for non-leaf
functions.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D71167
The file was modifiedclang/test/Driver/frame-pointer-elim.c
The file was modifiedclang/test/Driver/cl-options.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit a0aa58dad53f2e5e90a9b7079ec31bf7c3144fc7 by maskray
[AArch64] Save FP for leaf functions when disabling frame pointer
elimination
The change allows clang -mno-omit-leaf-frame-pointer to disable frame
pointer elimination. This behavior matches X86 and Mips, and also GCC
AArch64.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D71168
The file was modifiedllvm/test/CodeGen/AArch64/arm64_32.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-regsave.mir
The file was modifiedllvm/test/CodeGen/AArch64/fastcc.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/tail-call-no-save-fp-lr.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-large-frame.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
The file was modifiedllvm/test/CodeGen/AArch64/f16-instructions.ll
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-fix-cortex-a53-835769.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modifiedllvm/test/DebugInfo/AArch64/line-header.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner.mir
Commit 61c8ee6a2fa490bc224d006cd03efd650f6561bb by smeenai
[clang] Move CLANG_BOOTSTRAP_CMAKE_ARGS above PASSTHROUGH_VARIABLES
I want to pass some CMake cache files in CLANG_BOOTSTRAP_CMAKE_ARGS as
`-C <cache file>.cmake` arguments. I want to be able to use the values
of the bootstrap passthrough variables in the cache files, so the cache
file arguments need to be after passthrough variables. This should be
safe because the values of passthrough variables are all constants and
can't refer to values in CLANG_BOOTSTRAP_CMAKE_ARGS.
Differential Revision: https://reviews.llvm.org/D71428
The file was modifiedclang/CMakeLists.txt
Commit ad73f656b3c49f3462625ebeaec7a32f63d11d18 by thakis
gn build: add deps I failed to add in b2508ce85c1
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Frontend/OpenMP/BUILD.gn
Commit 3da7efedaa77f8fd8d40294c9e79716003517e6d by johannes
[Attributor] Reuse the IPConstantProp tests for the Attributor
The Attributor can, to some degree, do what IPConstantProp does. We can
consequently use the corner cases already collected and tested for in
the IPConstantProp tests to improve Attributor test coverage.
This exposed various bugs fixed in previous Attributor patches.
Not all functionality of IPConstantProp is available in AAValueSimplify
and AAIsDead so some tests show that we cannot perform the expected
constant propagation.
Reviewers: fhahn, efriedma, mssimpso, davide
Subscribers: bollu, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69748
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/global.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/2008-06-09-WeakProp.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/fp-bc-icmp-const-fold.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/arg-type-mismatch.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/comdat-ipo.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/deadarg.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/return-constant.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/naked-return.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/PR43857.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/dangling-block-address.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/recursion.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/remove-call-inst.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/solve-after-each-resolving-undefs-for-function.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/musttail-call.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/thread_local_acs.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll
The file was addedllvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
Commit 5d34602da452bd34b6b1bc6bc0a92017050bbe4a by johannes
[Attributor] Only replace instruction operands
This was part of D70767. When we replace the value of (call/invoke)
instructions we do not want to disturb the old call graph so we will
only replace instruction uses until we get rid of the old PM.
Accepted as part of D70767.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit b6f03a5a6b57b7858098051e60c2ce2fd4058461 by rjmccall
[NFC] Rename ClangASTEmitters.h -> ASTTableGen.h
The file was modifiedclang/utils/TableGen/ClangTypeNodesEmitter.cpp
The file was modifiedclang/utils/TableGen/TableGen.cpp
The file was removedclang/utils/TableGen/ClangASTEmitters.h
The file was addedclang/utils/TableGen/ASTTableGen.h
The file was modifiedclang/utils/TableGen/ClangAttrEmitter.cpp
The file was modifiedclang/utils/TableGen/ClangASTNodesEmitter.cpp
Commit a7950ffd12caa2fb7ed4704128011bceeacd35e9 by rjmccall
[NFC] Correct accidental use of tabs.
The file was modifiedclang/utils/TableGen/ClangTypeNodesEmitter.cpp
Commit 91dd67ef724c07f28d4cb52448539f12ad488f2a by rjmccall
Introduce some types and functions to make it easier to work with the
tblgen AST node hierarchies.
Not totally NFC because both of the emitters now emit in a different
order.  The type-nodes emitter now visits nodes in hierarchy order,
which means we could use range checks in classof if we had any types
that would benefit from that; currently we do not.  The AST-nodes
emitter now uses a multimap keyed by the name of the record; previously
it was using `Record*`, which of couse isn't stable across processes and
may have led to non-reproducible builds in some circumstances.
The file was modifiedclang/utils/TableGen/ClangTypeNodesEmitter.cpp
The file was modifiedclang/utils/TableGen/ASTTableGen.h
The file was modifiedclang/utils/TableGen/CMakeLists.txt
The file was addedclang/utils/TableGen/ASTTableGen.cpp
The file was modifiedclang/utils/TableGen/ClangASTNodesEmitter.cpp
Commit f39e1efaf5b0d4abb08bd042a3bae9a772836b5f by rjmccall
Add a function to get the ExceptionSpecInfo of a function type; NFC.
The file was modifiedclang/include/clang/AST/Type.h
Commit 30066e522c94a193dbcae9bc4d4005f8a137bd4b by rjmccall
Extract out WrappedRecord as a convenience base class; NFC.
The file was modifiedclang/utils/TableGen/ASTTableGen.h
Commit f6da0cf34a5a48bf8154067206980fff9b7a1975 by rjmccall
Enable better node-hierarchy metaprogramming; NFC.
The file was modifiedclang/utils/TableGen/ClangTypeNodesEmitter.cpp
The file was modifiedclang/utils/TableGen/ASTTableGen.cpp
The file was modifiedclang/utils/TableGen/ASTTableGen.h
Commit 139006ceb641f038a2b19cac1174316e57004ed6 by rjmccall
Extract the TypeClass <-> TypeCode map into a .def file; NFC.
The file was modifiedclang/include/clang/Serialization/ASTBitCodes.h
The file was addedclang/include/clang/Serialization/TypeBitCodes.def
Commit 3ce3d23facf146698c4ef6107d1b9425b3ff5764 by rjmccall
Standardize the reader methods in ASTReader; NFC.
There are three significant changes here:
- Most of the methods to read various embedded structures (`APInt`,
`NestedNameSpecifier`, `DeclarationName`, etc.) have been moved
from `ASTReader` to `ASTRecordReader`.  This cleans up quite a
bit of code which was passing around `(F, Record, Idx)` arguments
everywhere or doing explicit indexing, and it nicely parallels
how it works on the writer side.  It also sets us up to then move
most of these methods into the `BasicReader`s that I'm introducing
as part of abstract serialization.
  As part of this, several of the top-level reader methods (e.g.
`readTypeRecord`) have been converted to use `ASTRecordReader`
internally, which is a nice readability improvement.
- I've standardized most of these method names on `readFoo` rather
than `ReadFoo` (used in some of the helper structures) or `GetFoo`
(used for some specific types for no apparent reason).
- I've changed a few of these methods to return their result instead
of reading into an argument passed by reference.  This is partly
for general consistency and partly because it will make the
metaprogramming easier with abstract serialization.
The file was modifiedclang/include/clang/Serialization/ASTReader.h
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was modifiedclang/utils/TableGen/ClangAttrEmitter.cpp
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
Commit 6404bd236240639d4986d1ee634ded4bc81d8bd8 by rjmccall
Abstract serialization: TableGen "basic" reader/writer CRTP classes that
serialize basic values
The file was modifiedclang/include/clang/Basic/StmtNodes.td
The file was addedclang/utils/TableGen/ClangASTPropertiesEmitter.cpp
The file was modifiedclang/utils/TableGen/TableGenBackends.h
The file was addedclang/include/clang/AST/PropertiesBase.td
The file was modifiedclang/utils/TableGen/ASTTableGen.h
The file was modifiedclang/include/clang/Basic/DeclNodes.td
The file was modifiedclang/utils/TableGen/ASTTableGen.cpp
The file was modifiedclang/include/clang/Basic/TypeNodes.td
The file was modifiedclang/utils/TableGen/TableGen.cpp
The file was modifiedclang/include/clang/AST/CMakeLists.txt
The file was modifiedclang/utils/TableGen/CMakeLists.txt
Commit d505e57cc273750541ec8bbce2065b8b87c99ad6 by rjmccall
Abstract serialization: TableGen the (de)serialization code for Types.
The basic technical design here is that we have three levels of readers
and writers:
- At the lowest level, there's a `Basic{Reader,Writer}` that knows
how to emit the basic structures of the AST.  CRTP allows this to
be metaprogrammed so that the client only needs to support a handful
of primitive types (e.g. `uint64_t` and `IdentifierInfo*`) and more
complicated "inline" structures such as `DeclarationName` can just
be emitted in terms of those primitives.
  In Clang's binary-serialization code, these are
`ASTRecord{Reader,Writer}`.  For now, a large number of basic
structures are still emitted explicitly by code on those classes
rather than by either TableGen or CRTP metaprogramming, but I
expect to move more of these over.
- In the middle, there's a `Property{Reader,Writer}` which is
responsible for processing the properties of a larger object.  The
object-level reader/writer asks the property-level reader/writer to
project out a particular property, yielding a basic reader/writer
which will be used to read/write the property's value, like so:
  ```
   propertyWriter.find("count").writeUInt32(node->getCount());
```
  Clang's binary-serialization code ignores this level (it uses
the basic reader/writer as the property reader/writer and has the
projection methods just return `*this`) and simply relies on the
roperties being read/written in a stable order.
- At the highest level, there's an object reader/writer (e.g.
`Type{Reader,Writer}` which emits a logical object with properties.
Think of this as writing something like a JSON dictionary literal.
I haven't introduced support for bitcode abbreviations yet --- it turns
out that there aren't any operative abbreviations for types besides the
QualType one --- but I do have some ideas of how they should work.  At
any rate, they'll be necessary in order to handle statements.
I'm sorry for not disentangling the patches that added basic and type
reader/writers; I made some effort to, but I ran out of energy after
disentangling a number of other patches from the work.
Negligible impact on module size, time to build a set of about 20 fairly
large modules, or time to read a few declarations out of them.
The file was modifiedclang/include/clang/AST/Type.h
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was addedclang/include/clang/AST/AbstractTypeWriter.h
The file was modifiedclang/include/clang/Serialization/ASTReader.h
The file was modifiedclang/include/clang/AST/ASTContext.h
The file was modifiedclang/include/clang/AST/CMakeLists.txt
The file was modifiedclang/include/clang/Serialization/ASTWriter.h
The file was modifiedclang/utils/TableGen/TableGen.cpp
The file was addedclang/include/clang/AST/AbstractBasicWriter.h
The file was addedclang/include/clang/AST/TypeProperties.td
The file was addedclang/include/clang/AST/AbstractTypeReader.h
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
The file was addedclang/include/clang/AST/AbstractBasicReader.h
Commit 3d347e28355ab3a826274814ce2a730684b19b0c by johannes
[Attributor][NFC] Simplify debug printing for abstract attributes
This also fixes a type in the debug printing of AANoAlias.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 6a05ee05b68790c79f0faa31beb54a06ca05f72f by johannes
[Attributor][NFC] Reorder test functions
Since one of the functions has a personality the attribute set is
printed. If the function is the first it should (hopefully) always be #0
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-constant.ll
Commit dab7d515bac92f244230912aa8490aa17e41df4a by johannes
[Attributor][NFC] Add more simple test situations for callbacks
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
Commit 139c9ef45afeb7f76d3f612315506e30010b3204 by johannes
[Attributor] Annotate call sites of declarations with a callback
Even if a declaration is called, if there is a callback we might need
the information during CG-SCC traversal (D70767).
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit d14a5693c07f0fb1b82c75ed72f77a495751dcf7 by rjmccall
MSVC build fix: forget some unneeded and incorrect friends.
On MSVC, friend declarations are (incorrectly) visible even if not
otherwise declared, which causes them to interfere with lookup.
ASTTypeWriter is actually in an anonymous namespace and cannot be
ASTWriter's friend.  The others simply don't need to be anymore.
The file was modifiedclang/include/clang/Serialization/ASTWriter.h
The file was modifiedclang/include/clang/Serialization/ASTReader.h
Commit c0cfdd32d036c29ac3f77a1817d11e92eb143eb1 by johannes
[ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests
Summary: In preparation of D65531 as well as the reuse of these tests
for the Attributor, we modernize them and use the update_test_checks to
simplify updates.
This was done with the update_test_checks after D68819 and D68850.
Reviewers: hfinkel, vsk, dblaikie, davidxl, tejohnson, tstellar,
echristo, chandlerc, efriedma, lebedev.ri
Subscribers: bollu, arphaman, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68766
The file was modifiedllvm/test/Transforms/ArgumentPromotion/inalloca.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/chained.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/crash.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/X86/min-legal-vector-width.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/invalidation.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/control-flow2.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/pr33641_remove_arg_dbgvalue.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/profile.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/dbg.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/fp80.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/byval-2.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/variadic.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/nonzero-address-spaces.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/tail.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/2008-09-07-CGUpdate.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/X86/thiscall.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/pr3085.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/sret.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/X86/attributes.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/byval.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/naked_functions.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/aggregate-promote.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/control-flow.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/attrs.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/pr32917.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/reserve-tbaa.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/basictest.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/musttail.ll
The file was modifiedllvm/test/Transforms/ArgumentPromotion/pr27568.ll