Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
293 commits
Select commit Hold shift + click to select a range
ede7c24
[VPlan] Create header & latch blocks for skeleton up front (NFC).
fhahn Dec 22, 2021
2efc689
[lldb/python] Avoid more dangling pointers in python glue code
labath Dec 17, 2021
e7c48f3
[lldb] Use GetSupportedArchitectures on darwin platforms
labath Dec 17, 2021
516882a
[libcxx] [test] Prepare the ctime.timespec test for mingw CI env upgr…
mstorsjo Dec 17, 2021
fd64544
[libcxx] [test] Remove a leftover unused function in config.py. NFC.
mstorsjo Dec 8, 2021
7176799
[libc++] Add from-scratch testing configs for Windows
mstorsjo Dec 8, 2021
a9bb97e
[msan] Break optimization in memccpy tests
nikic Dec 22, 2021
5eb2718
[clang][OpenMP][DebugInfo] Debug support for variables in shared clau…
alokkrsharma Dec 22, 2021
fb78587
[lldb] [Process/FreeBSDKernel] Introduce libkvm support
mgorny Dec 18, 2021
9075009
[AMDGPU] Move call clobbered return address registers s[30:31] to cal…
RamNalamothu Dec 22, 2021
8ad364a
[libc++] [ranges] Remove the static_assert from ranges::begin and ran…
Quuxplusone Dec 16, 2021
fd8fc5e
[clang-tidy] abseil-string-find-startswith: detect `s.rfind(z, 0) == 0`
ivan-gerasimov Dec 22, 2021
da007a3
[JSONNodeDumper] Regenerate test checks (NFC)
nikic Dec 22, 2021
0fe1ccc
[OpenMP] Regenerate test checks (NFC)
nikic Dec 22, 2021
a364e8f
[NFC][Clang] Move function implementation of `OpenMPAtomicUpdateCheck…
shiltian Dec 22, 2021
ea22fdd
[Clang][DebugInfo] Cease turning instruction-referencing off by default
jmorse Dec 22, 2021
09b5329
Revert "[AMDGPU] Move call clobbered return address registers s[30:31…
ronlieb Dec 22, 2021
4639461
[DAG][X86] Add TargetLowering::isSplatValueForTargetNode override
RKSimon Dec 22, 2021
4a10457
[mlir][arith] Fix CmpIOP folding for vector types.
akuegel Dec 22, 2021
cb8a0b0
[libc++] [ranges] Introduce _LIBCPP_AUTO_CAST(x) for auto(x).
Quuxplusone Dec 14, 2021
ece75e2
[gn build] Port cb8a0b07974e
llvmgnsyncbot Dec 22, 2021
8b58344
Remove superfluous semicolon.
RKSimon Dec 22, 2021
25226f3
[libc] apply formatting to tests
michaelrj-google Dec 21, 2021
42ac4f3
[mlir] Canonicalizer constructor should accept disabled/enabled patterns
Mogball Dec 21, 2021
9eb8e7b
[MLIR][PDL] Clear up the terminology in the root ordering graph.
sfuniak Dec 22, 2021
db68e6a
[mlir] Fix missing namespace (NFC)
Mogball Dec 22, 2021
deaedab
[NFC][AMDGPU][CostModel] Add tests for AMDGPU cost model.
dfukalov Dec 22, 2021
a2120f6
[NFC][AMDGPU][CostModel] Add tests for AMDGPU cost model, part 2.
dfukalov Dec 22, 2021
79abf89
[libc][obvious] fix formatting mistake
michaelrj-google Dec 22, 2021
ad761f0
[mlir] Update BUILD.bazel to include `scf_tests`
Mogball Dec 22, 2021
df59056
[DSE] Add test case showing bug PR52774.
mariannems Dec 22, 2021
7347c28
[mlir] Add missing unit tests to BUILD.bazel
Mogball Dec 22, 2021
86618e3
Resolve lint warning about converting unsigned to signed (NFC)
salman-javed-nz Dec 22, 2021
dcb3e80
[Hexagon] Make conversions to vector predicate types explicit for bui…
Dec 22, 2021
e5639b3
Fix more clang-tidy cleanups in mlir/ (NFC)
joker-eph Dec 22, 2021
f99a8bc
[NFC][mlgo]Rename a variable in TensorFlowCompile.cmake
mtrofin Dec 22, 2021
32e8b30
[mlir] Add unit test for disabling canonicalizer patterns (NFC)
Mogball Dec 22, 2021
90d1786
[DSE] Fix invalid removal of store instruction
mariannems Dec 22, 2021
d840f3e
Resolve -Wdocumentation warning in ClangTidyDiagnosticConsumer (NFC)
salman-javed-nz Dec 22, 2021
edf8e3e
[NFC][mlgo]Make the test model generator inlining-specific
mtrofin Dec 22, 2021
3cc2161
[libc] Move the x86_64 syscall functions to OSUtil.
Dec 22, 2021
5fc4323
[ELF] Change some global pointers to unique_ptr
MaskRay Dec 22, 2021
e8a0af8
[libc][Obvious] Add target OSUtil tests only if the target OS/arch ma…
Dec 22, 2021
6c67ff4
[NFC][sanitizer] Reformat a part of the file
vitalybuka Dec 22, 2021
6399778
[NFC][sanitizer] Reformat script
vitalybuka Dec 22, 2021
caf940b
[libc++] Remove "clang-format off/on" comments. NFC.
Quuxplusone Dec 22, 2021
e4103c9
[AMDGPU] Select build_vector DAG nodes according to the divergence
alex-t Dec 22, 2021
62a6b9e
Revert "[DwarfDebug] Support emitting function-local declaration for …
dwblaikie Dec 22, 2021
c3f0e1e
[LLDB][DWARF] Fix duplicate TypeSP in type list
ZequanWu Dec 21, 2021
9b39737
[libc] add modified Eisel-Lemire for long doubles
michaelrj-google Nov 12, 2021
ed6c757
[DFSan] Add functions to print origin trace from origin id instead of…
browneee Dec 22, 2021
352945d
[libc++] Remove unused headers from <filesystem>
philnik777 Dec 22, 2021
3a5fb57
[ELF] Replace LazyObjFile with lazy ObjFile/BitcodeFile
MaskRay Dec 23, 2021
157d565
[docs] Update new builder instructions to starting on the staging bui…
preames Dec 23, 2021
ee5d5e1
[funcattrs] Use callsite param attributes from indirect calls when in…
preames Dec 23, 2021
28a3e7d
[RISCV] Override hasAndNotCompare to use more andn when have Zbb exte…
jacquesguan Dec 17, 2021
e5b23e5
Autogen a test in advance of another change
preames Dec 23, 2021
da41cfd
Add test coverage for D109917 and variants
preames Dec 23, 2021
682d01a
[X86][MS-InlineAsm] Use exact conditions to recognize MS global varia…
phoebewang Dec 23, 2021
724e686
Fix warning: "unused variable 'attrClass'" (NFC)
joker-eph Dec 22, 2021
94a47df
Revert "Fix warning: "unused variable 'attrClass'" (NFC)"
joker-eph Dec 23, 2021
a954558
Revert "[X86][MS-InlineAsm] Use exact conditions to recognize MS glob…
phoebewang Dec 23, 2021
baa3eb0
[ELF] Change some non-null pointer parameters to references. NFC
MaskRay Dec 23, 2021
5c75cc5
[ELF] Change nonnull pointer parameters to references. NFC
MaskRay Dec 23, 2021
d019de2
[ELF] Make InStruct members unique_ptr and remove associate make<XXX>
MaskRay Dec 23, 2021
0489e89
[DAGCombiner] Avoid combining adjacent stores at -O0 to improve debug…
xgupta Dec 23, 2021
4126b08
[NFC][sanitizer] Format a part of the file
vitalybuka Dec 23, 2021
4316859
[NFC][sanitizer] Format the test
vitalybuka Dec 23, 2021
9f3aca7
[sanitizer] Support symbolize_inline_frames by addr2line
vitalybuka Dec 23, 2021
e48b1c8
[ELF] Make Partition members unique_ptr and remove associate make<XXX>
MaskRay Dec 23, 2021
12779ed
[libc] Add performance tests for hypotf and hypot.
lntue Dec 21, 2021
ba6973c
[ELF] Change nonnull pointer parameters to references
MaskRay Dec 23, 2021
856550c
[Sanitizer] Fix setbuffer() interceptor (it accept size, not mode)
azat Dec 23, 2021
ba948c5
[ELF] Use SmallVector for some global variables (*Files and *Sections…
MaskRay Dec 23, 2021
f66d602
[clang-format] Fix wrong indentation after trailing requires clause.
mkurdej Dec 22, 2021
d39d2ac
[DFSan] Make dfsan_read_origin_of_first_taint public.
browneee Dec 23, 2021
ad26b0b
Revert "[ELF] Make Partition/InStruct members unique_ptr and remove a…
MaskRay Dec 23, 2021
8043beb
[JSONNodeDumper] Do not print mangled names for local variables (PR49…
nikic Dec 22, 2021
1201a0f
[OpenMP] Fix incorrect type when casting from uintptr
nikic Dec 22, 2021
510d0e4
[IR] Add memory attributes for init.trampoline
nikic Dec 22, 2021
55861c9
[IR] Use default attributes for trampoline intrinsics
nikic Dec 23, 2021
f804249
[DSE] Regenerate test checks (NFC)
nikic Dec 23, 2021
58ad342
[DSE] Add test for matrix store (NFC)
nikic Dec 23, 2021
5d0be55
[ELF] Optimize copyLocalSymbols. NFC
MaskRay Dec 23, 2021
f9607d4
Revert "Revert "[DwarfDebug] Support emitting function-local declarat…
omjavaid Dec 23, 2021
61312fd
[ELF] sortSections: delete unneeded outSecOff assignment
MaskRay Dec 23, 2021
33319dd
[ELF] LTO: skip expensive usedStartStop initialization if bitcodeFile…
MaskRay Dec 23, 2021
09669e6
[CodeGen] Avoid pointer element type access when creating LValue
nikic Dec 21, 2021
74ce7ff
[AMDGPU] Remove a TODO that was done by D98081
jayfoad Dec 23, 2021
fcc0964
Revert "[libc++] Remove unused headers from <filesystem>"
philnik777 Dec 23, 2021
1d50cf9
[libc++] IWYU in <filesystem> tests
philnik777 Dec 23, 2021
53f0538
[CodeGen] Use correct element type for store to sret
nikic Dec 23, 2021
23f1cd9
[libc++] Remove unused headers from <filesystem>
philnik777 Dec 23, 2021
368318b
[C++20] [Coroutines] Mark imported module as imported if not exported
ChuanqiXu9 Dec 23, 2021
1e2c31c
Revert "[C++20] [Coroutines] Mark imported module as imported if not …
ChuanqiXu9 Dec 23, 2021
2810c34
[VE] Add VE support to update_llc_test_checks
Dec 23, 2021
86b001a
[C++20] [Modules] Mark imported module as imported if not exported
ChuanqiXu9 Dec 23, 2021
3d36da7
[VE] Add manuals to CompilerWriterInfo
Dec 23, 2021
d286308
GlobalISel: Regen vector mir tests, add tests for vector arg lowering
petar-avramovic Dec 23, 2021
29f88b9
[GlobalISel] Rework more/fewer elements for vectors
petar-avramovic Dec 23, 2021
2c7dc13
[CGBuilder] Add CreateGEP() overload that accepts an Address
nikic Dec 23, 2021
bf2b555
[CodeGen] Use CreateConstInBoundsGEP() in one more place
nikic Dec 23, 2021
7977fd7
[OpenMP] Remove no-op cast (NFC)
nikic Dec 23, 2021
a3f50fb
[X86] isVectorShiftByScalarCheap - vXi8 select(shift(x,splat0),shift(…
RKSimon Dec 23, 2021
a9486a4
[RISCV] Disable interleaving scalar loops in the loop vectorizer.
topperc Dec 23, 2021
0ff20f2
[InstSimplify] Fold logic AND to zero
mhpr93 Dec 14, 2021
71fc4bb
[X86][SSE] Add ISD::ROTR support
RKSimon Dec 23, 2021
0045d01
[SPIR-V] Add a toolchain for SPIR-V in clang
Dec 23, 2021
fd3cde6
AMDGPU/GlobalISel: Fix attempt to select non-legal instr in mir test
petar-avramovic Dec 23, 2021
e70ef6d
[AArch64] Add a tablegen pattern for SQXTN2.
labrinea Dec 23, 2021
b7b260e
[RISCV] Support strict FP conversion operations.
topperc Dec 23, 2021
dfb20d4
[libc++][format] Improve ABI stability.
mordante Dec 21, 2021
7704c50
[RISCV] Use positive 0.0 for the neutral element in fadd reductions i…
topperc Dec 23, 2021
e8b24ee
[libc++][format][NFC] Remove some unneeded headers.
mordante Dec 22, 2021
ab3640a
[ASan] Moved optimized callbacks into a separate library.
kstoimenov Dec 8, 2021
f766bc0
[Hexagon] Introduce Hexagon v69 ISA
Dec 22, 2021
4c8becb
[Hexagon] Add Hexagon v69 builtins to clang
Dec 22, 2021
d45a247
[AMDGPU] Don't remove VGPR to AGPR dead spills from frame info
bcahoon Dec 18, 2021
4bf3165
Revert "[ASan] Moved optimized callbacks into a separate library."
kstoimenov Dec 23, 2021
4374824
[ELF] --gc-sections: combine two iterations over inputSections
MaskRay Dec 23, 2021
5410152
[Bazel] Add target for llvm-tli-checker
kuhar Dec 23, 2021
1d1b5ef
[Hexagon] Driver/preprocessor options for Hexagon v69
Dec 23, 2021
3e52096
[libc][NFC] fix variable name
michaelrj-google Dec 23, 2021
9fe0d67
[sanitizer] Check kArgVMax in SymbolizerProcess::GetArgV
vitalybuka Dec 23, 2021
a7ebf20
[NFC][sanitizer] Increase kArgVMax to 16
vitalybuka Dec 23, 2021
eafc64e
[Driver][test] Remove unneeded -no-canonical-prefixes and use preferr…
MaskRay Dec 23, 2021
f103ee2
[sanitizer] Move internal_symbolizer "inline" option
vitalybuka Dec 22, 2021
bf45624
[ELF][PPC32] Support .got2 in an output section description
MaskRay Dec 23, 2021
be8180a
[clang][driver] Warn when '-mno-outline-atomics' is used with a non-A…
nathanchance Dec 23, 2021
8f8c89f
[mlir] Remove spurious debug guard
Mogball Dec 23, 2021
6842f52
[libc++] [test] Flatten the directory structure a bit. NFC.
Quuxplusone Dec 23, 2021
a2a9a5c
[libc++] [ranges] Fix bugs in ranges::empty().
Quuxplusone Dec 22, 2021
4191a93
[libc++] [test] Eliminate `== true` and `== false`. NFC.
Quuxplusone Dec 23, 2021
3042091
[libc++] [ranges] Whitespace and namespace-style adjustments. NFC.
Quuxplusone Dec 23, 2021
937b00a
[Polly][SchedOpt] Account for prevectorization of multiple statements.
Meinersbur Dec 23, 2021
313de31
[mlir][tosa] Split tosa-to-linalg named ops out of pass
rsuderman Dec 23, 2021
10b3675
[RISCV][VP] Lower mask vector VP AND/OR/XOR to RVV instructions
victor-eds Dec 23, 2021
5fd328c
[gn build] (manually) port f103ee2e9e3fc (sanitizer_symbolize_set_inl…
nico Dec 23, 2021
5d68dc1
[Verifier] Iteratively traverse all indirect users.
fhahn Dec 23, 2021
7cd7b4d
[sanitizer] Add common "demangle" flag
vitalybuka Dec 23, 2021
81378f7
Revert "[DwarfDebug] Support emitting function-local declaration for …
chbessonova Dec 23, 2021
ee4bbb5
[gn build] (manually) port 7cd7b4d2f807 (sanitizer_symbolize_set_dema…
nico Dec 23, 2021
464cc4c
[ELF] Remove stale comment which was duplicated in MarkLive<ELFT>::run
MaskRay Dec 23, 2021
a67c0fc
[Hexagon] Revamp HVX flag verification in driver
Dec 23, 2021
6050962
[libc][obvious] Fix style of MPFRWrapper.
Dec 23, 2021
8a26ba6
Load binary by UUID from qProcessInfo packet fields
jasonmolenda Dec 23, 2021
735fe1d
Revert "[mlir][tosa] Split tosa-to-linalg named ops out of pass"
joker-eph Dec 24, 2021
71b3bfd
[ASan] Moved optimized callbacks into a separate library.
kstoimenov Dec 23, 2021
417cd2e
[ELF] SymbolTable: change some vector<Symbol *> to SmallVector
MaskRay Dec 24, 2021
a6114ff
[gn build] "port" 71b3bfde9cd2
nico Dec 24, 2021
8ff4276
[mlir] Use thread-pool's notion of thread count instead of requerying…
stellaraccident Dec 24, 2021
a2baf63
[ELF] Simplify SymbolTable::insert. NFC
MaskRay Dec 24, 2021
41a6433
[mlir] Add getNumThreads to MLIRContext
Mogball Dec 24, 2021
1abbbc7
[ELF] scanVersionScript: remove unused variable
MaskRay Dec 24, 2021
0a35211
[RISCV] Don't allow vector types to be used with inline asm 'r' const…
topperc Dec 23, 2021
a79c567
[NFC] Remove tailing whitespaces in llvm/include/llvm/Frontend/OpenMP…
shiltian Dec 24, 2021
1d285f2
[ELF] Simplify and optimize ObjFile<ELFT>::parseLazy
MaskRay Dec 24, 2021
f3d4e16
[C++20] Conform coroutine's comments in clang (NFC-ish)
ChuanqiXu9 Dec 24, 2021
b05df02
Revert "[DWARF] Fix PR51087 Extraneous enum record in DWARF with type…
dwblaikie Dec 24, 2021
02478a2
[RISCV] Use DAG variable directly instead of DCI.DAG
tclin914 Dec 24, 2021
097208d
[C++20] [Coroutines] Allow promise_type to not define return_void or …
ChuanqiXu9 Dec 24, 2021
0d749e1
[ELF] Optimize symbol initialization and resolution
MaskRay Dec 24, 2021
dd90317
[OpenMP] Avoid creating null pointer lvalue (NFC)
nikic Dec 23, 2021
69ffc3c
[Attributor] Directly call areTypesABICompatible() hook
nikic Dec 20, 2021
cb31a57
[DebugInfo] Remove type-units-maybe-unused-types.ll test
nikic Dec 24, 2021
ae64c5a
[DSE][MemLoc] Handle intrinsics more generically
nikic Dec 23, 2021
ba2b34b
[DSE] Simplify isGuaranteedLoopInvariant() (NFC)
nikic Dec 24, 2021
ea2d4c5
[GlobalISel] Fix -Wunused-function in -DLLVM_ENABLE_ASSERTIONS=off bu…
MaskRay Dec 24, 2021
81d69e1
[DSE] Call isRemovable() after getLocForWriteEx() (NFCI)
nikic Dec 24, 2021
2b8a703
[DSE] Avoid calling isRemovable() on non-analyzable location (NFC)
nikic Dec 24, 2021
034e66e
[DSE] Assert analyzable write in isRemovable() (NFC)
nikic Dec 24, 2021
24c68ea
Reland "[X86][MS-InlineAsm] Use exact conditions to recognize MS glob…
phoebewang Dec 24, 2021
72d2201
[DSE] Rename getLocForWriteEx() to getLocForWrite() (NFC)
nikic Dec 24, 2021
90095a0
[DSE] Remove unnecessary check in getLocForWrite() (NFC)
nikic Dec 24, 2021
eb91d91
[DSE] Fix typo in recent commit
nikic Dec 24, 2021
969a51f
Revert "[ASan] Moved optimized callbacks into a separate library."
krasimirgg Dec 24, 2021
3b4c040
[gn build] Port 969a51ff3632
llvmgnsyncbot Dec 24, 2021
bb84dd8
[AArch64] Add a tablegen pattern for RADDHN/RADDHN2.
labrinea Dec 24, 2021
c7a589a
[Clang][OpenMP] Add the support for atomic compare in parser
shiltian Dec 24, 2021
159da56
[X86] Enable v32i16 ISD::ROTL/ROTR lowering on AVX512BW targets
RKSimon Dec 23, 2021
2862379
InstCombine: Gracefully handle more allocas in the wrong address space
arsenm Dec 16, 2021
8020458
[AMDGPU] Changing S_AND_B32 to V_AND_B32_e64 in the divergent 'trunc'…
alex-t Dec 23, 2021
d5dc396
[DFAJumpThreading] Determinator BB should precede switch-defining BB
Dec 15, 2021
dc8f9fb
[Docs] Minor fix in clang user manual
Dec 24, 2021
6c0eaef
[MLIR][FlatAffineConstraints][NFC] Move some static functions to be a…
Groverkss Dec 24, 2021
27a0718
Revert "[MLIR][FlatAffineConstraints][NFC] Move some static functions…
Groverkss Dec 24, 2021
8ea64d5
[clang-format] Fix short enums getting wrapped even when denied
yodaldevoid Dec 24, 2021
e1b6b5b
[ELF] Avoid referencing SectionBase::repl after ICF
MaskRay Dec 24, 2021
e694180
[ELF] Optimize --wrap to only check non-local symbols
MaskRay Dec 24, 2021
5e3403b
[ELF] parseLazy: skip local symbols
MaskRay Dec 24, 2021
a9e8b1e
[mlir] Fully qualify default types used in parser code
zero9178 Dec 24, 2021
d63016a
[CMake] Revert -Wl,-O3
MaskRay Dec 24, 2021
2709fd1
[MLIR][LLVM] Add MemmoveOp to LLVM Dialect
wsmoses Dec 24, 2021
b5a0f0f
[ELF] Add ELFFileBase::{elfShdrs,numELFShdrs} to avoid duplicate llvm…
MaskRay Dec 25, 2021
745420d
[ELF] Cache global variable `target` in relocate*
MaskRay Dec 25, 2021
40fae4d
[ELF] Optimize replaceCommonSymbols
MaskRay Dec 25, 2021
a8cbddc
[CodeGen] Fix a memory leak
kazutakahirata Dec 25, 2021
9c0a422
Use Optional::getValueOr (NFC)
kazutakahirata Dec 25, 2021
62e48ed
Use isa instead of dyn_cast (NFC)
kazutakahirata Dec 25, 2021
76f0f1c
Use {DenseSet,SetVector,SmallPtrSet}::contains (NFC)
kazutakahirata Dec 25, 2021
3cfe375
Use StringRef::contains (NFC)
kazutakahirata Dec 25, 2021
cde37a7
[ELF][test] Add tests for mixed GD-to-IE and IE, mixed TLSDESC and GD
MaskRay Dec 25, 2021
7091242
[ELF] Move TLS dynamic relocations to postScanRelocations
MaskRay Dec 25, 2021
2d303e6
Remove redundant return and continue statements (NFC)
kazutakahirata Dec 25, 2021
34558b0
[StaticAnalyzer] Remove redundant declaration isStdSmartPtr (NFC)
kazutakahirata Dec 25, 2021
d86e2cc
[NFC] Method for evaluation of FCmpInst for constant operands
spavloff Sep 19, 2021
5b2e611
[MLIR][FlatAffineConstraints][NFC] Move some static functions to be a…
Groverkss Dec 25, 2021
46cdcf0
[lldb] Add support for UTF-8 unicode formatting
ljmf00 Dec 25, 2021
0c553cc
[MLIR] Add forgotten directory Support to unittests cmake
Superty Dec 25, 2021
dd4f5d4
[ELF] De-template handleTlsRelocation. NFC
MaskRay Dec 25, 2021
a00f480
[ELF] scanReloc: remove unused start parameter. NFC
MaskRay Dec 25, 2021
bba2288
[lldb] Add UTF-8 char basic type
ljmf00 Dec 21, 2021
d8c5a68
[lldb] Add UTF-8 Basic Type on Clang TypeSystem
ljmf00 Dec 22, 2021
71793f5
[Demangle] Add support for D simple basic and compound types
ljmf00 Oct 5, 2021
69d61cb
[Demangle] Add support for D symbols back referencing
ljmf00 Oct 6, 2021
64e28a6
[Demangle] Add support for D types back referencing
ljmf00 Oct 6, 2021
1409c80
[Demangle] Add support for D type functions
ljmf00 Oct 6, 2021
2b86e0a
[Demangle] Add support for D functions
ljmf00 Oct 6, 2021
ad79c70
[Demangle] Add support for D native tuple types
ljmf00 Oct 7, 2021
50388f2
[Demangle] Add support for D delegate types
ljmf00 Oct 7, 2021
f7afd82
[Demangle] Add support for D template instances
ljmf00 Oct 7, 2021
a86027b
[Demangle] Add support for D integer literal values
ljmf00 Oct 7, 2021
d44be27
[Demangle] Add support for D floating-point literal values
ljmf00 Oct 7, 2021
17902db
[Demangle] Add support for D string literals
ljmf00 Oct 7, 2021
fa96e48
[Demangle] Add support for D Array and associative array literals
ljmf00 Oct 8, 2021
a0fc061
[Demangle] Add support for D struct literals
ljmf00 Oct 8, 2021
6b35229
[Demangle] Add support for D function literals and null literal value
ljmf00 Oct 8, 2021
1f0096d
[lldb] Move generic DWARFASTParser code out of Clang-specific code
ljmf00 Nov 28, 2021
737913a
[lldb] Move non-clang specific method to the generic DWARF Parser
ljmf00 Nov 29, 2021
dda3ad7
[lldb][NFC] Generalize ParsedDWARFTypeAttributes
ljmf00 Nov 29, 2021
499d8eb
[lldb] Move UpdateSymbolContextScopeForType
ljmf00 Dec 6, 2021
aa37e3a
[lldb] Add simple D language plugin
ljmf00 Oct 22, 2021
4d8bf71
[lldb] Add support for usage of Clang TypeSystem for D
ljmf00 Oct 25, 2021
8984304
[lldb] Add a minimal TypeSystem for D
ljmf00 Nov 24, 2021
e8ef4ed
[lldb] Remove D from Clang TypeSystem
ljmf00 Nov 25, 2021
eb8b391
[lldb] Add a minimal DWARF AST Parser for D
ljmf00 Nov 29, 2021
679ca1f
[lldb] Add support for basic types for D
ljmf00 Dec 2, 2021
1a4291d
[lldb] Add mapping for DType kind and lldb::Format
ljmf00 Dec 21, 2021
7bdd9e9
[lldb] Add mapping for DType kind and lldb::Encoding
ljmf00 Dec 21, 2021
806ad10
[lldb] Add mapping for DType kind and lldb::BasicType
ljmf00 Dec 21, 2021
e429ca3
[lldb] Implement Dump for D TypeSystem
ljmf00 Dec 23, 2021
806fe93
[lldb] Add minimal type information for builtin types in D TypeSystem
ljmf00 Dec 24, 2021
38e5f71
[lldb] Add target triple on D TypeSystem
ljmf00 Dec 24, 2021
51638b5
[lldb] Implement GetBitSize for builtin types in D TypeSystem
ljmf00 Dec 24, 2021
83aeeb6
[lldb] Add type name mapping for DType
ljmf00 Dec 24, 2021
b60e906
[lldb] Use bit size on DWARF encoding
ljmf00 Dec 30, 2021
6b4138d
[lldb] Add hardcoded bitsize version of real builtin type
ljmf00 Jan 4, 2022
47403dd
[lldb] Add support for the rest of the builtin types
ljmf00 Jan 5, 2022
78f464e
[lldb][DWARF] Generalize logic to get encoding from a DWARF Type tag
ljmf00 Dec 13, 2021
6f1192a
[lldb] Add support for Derived types
ljmf00 Jan 14, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion clang-tools-extra/clang-doc/Mapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ bool MapASTVisitor::VisitCXXMethodDecl(const CXXMethodDecl *D) {

bool MapASTVisitor::VisitFunctionDecl(const FunctionDecl *D) {
// Don't visit CXXMethodDecls twice
if (dyn_cast<CXXMethodDecl>(D))
if (isa<CXXMethodDecl>(D))
return true;
return mapDecl(D);
}
Expand Down
6 changes: 3 additions & 3 deletions clang-tools-extra/clang-doc/Serialize.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ populateParentNamespaces(llvm::SmallVector<Reference, 4> &Namespaces,
// corresponds to a Record and if it doesn't have any namespace (because this
// means it's in the global namespace). Also if its outermost namespace is a
// record because that record matches the previous condition mentioned.
if ((Namespaces.empty() && dyn_cast<RecordDecl>(D)) ||
if ((Namespaces.empty() && isa<RecordDecl>(D)) ||
(!Namespaces.empty() && Namespaces.back().RefType == InfoType::IT_record))
Namespaces.emplace_back(SymbolID(), "GlobalNamespace",
InfoType::IT_namespace);
Expand Down Expand Up @@ -419,10 +419,10 @@ static void populateFunctionInfo(FunctionInfo &I, const FunctionDecl *D,
populateSymbolInfo(I, D, FC, LineNumber, Filename, IsFileInRootDir,
IsInAnonymousNamespace);
if (const auto *T = getDeclForType(D->getReturnType())) {
if (dyn_cast<EnumDecl>(T))
if (isa<EnumDecl>(T))
I.ReturnType = TypeInfo(getUSRForDecl(T), T->getNameAsString(),
InfoType::IT_enum, getInfoRelativePath(T));
else if (dyn_cast<RecordDecl>(T))
else if (isa<RecordDecl>(T))
I.ReturnType = TypeInfo(getUSRForDecl(T), T->getNameAsString(),
InfoType::IT_record, getInfoRelativePath(T));
} else {
Expand Down
3 changes: 2 additions & 1 deletion clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,8 @@ DiagnosticBuilder ClangTidyContext::diag(const ClangTidyError &Error) {
SM.getFileManager().getFile(Error.Message.FilePath);
FileID ID = SM.getOrCreateFileID(*File, SrcMgr::C_User);
SourceLocation FileStartLoc = SM.getLocForStartOfFile(ID);
SourceLocation Loc = FileStartLoc.getLocWithOffset(Error.Message.FileOffset);
SourceLocation Loc = FileStartLoc.getLocWithOffset(
static_cast<SourceLocation::IntTy>(Error.Message.FileOffset));
return diag(Error.DiagnosticName, Loc, Error.Message.Message,
static_cast<DiagnosticIDs::Level>(Error.DiagLevel));
}
Expand Down
6 changes: 2 additions & 4 deletions clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
Original file line number Diff line number Diff line change
Expand Up @@ -241,14 +241,12 @@ getFixIt(const tooling::Diagnostic &Diagnostic, bool AnyFix);

/// A diagnostic consumer that turns each \c Diagnostic into a
/// \c SourceManager-independent \c ClangTidyError.
///
/// \param EnableNolintBlocks Enables diagnostic-disabling inside blocks of
/// code, delimited by NOLINTBEGIN and NOLINTEND.
//
// FIXME: If we move away from unit-tests, this can be moved to a private
// implementation file.
class ClangTidyDiagnosticConsumer : public DiagnosticConsumer {
public:
/// \param EnableNolintBlocks Enables diagnostic-disabling inside blocks of
/// code, delimited by NOLINTBEGIN and NOLINTEND.
ClangTidyDiagnosticConsumer(ClangTidyContext &Ctx,
DiagnosticsEngine *ExternalDiagEngine = nullptr,
bool RemoveIncompatibleErrors = true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,6 @@ void DurationFactoryScaleCheck::check(const MatchFinder::MatchResult &Result) {
tooling::fixit::getText(*Remainder, *Result.Context) + ")")
.str());
}
return;
}

} // namespace abseil
Expand Down
35 changes: 30 additions & 5 deletions clang-tools-extra/clang-tidy/abseil/StringFindStartswithCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ void StringFindStartswithCheck::registerMatchers(MatchFinder *Finder) {

auto StringFind = cxxMemberCallExpr(
// .find()-call on a string...
callee(cxxMethodDecl(hasName("find"))),
callee(cxxMethodDecl(hasName("find")).bind("findfun")),
on(hasType(StringType)),
// ... with some search expression ...
hasArgument(0, expr().bind("needle")),
Expand All @@ -55,6 +55,25 @@ void StringFindStartswithCheck::registerMatchers(MatchFinder *Finder) {
ignoringParenImpCasts(StringFind.bind("findexpr"))))
.bind("expr"),
this);

auto StringRFind = cxxMemberCallExpr(
// .rfind()-call on a string...
callee(cxxMethodDecl(hasName("rfind")).bind("findfun")),
on(hasType(StringType)),
// ... with some search expression ...
hasArgument(0, expr().bind("needle")),
// ... and "0" as second argument.
hasArgument(1, ZeroLiteral));

Finder->addMatcher(
// Match [=!]= with either a zero or npos on one side and a string.rfind
// on the other.
binaryOperator(
hasAnyOperatorName("==", "!="),
hasOperands(ignoringParenImpCasts(ZeroLiteral),
ignoringParenImpCasts(StringRFind.bind("findexpr"))))
.bind("expr"),
this);
}

void StringFindStartswithCheck::check(const MatchFinder::MatchResult &Result) {
Expand All @@ -69,6 +88,11 @@ void StringFindStartswithCheck::check(const MatchFinder::MatchResult &Result) {
const Expr *Haystack = Result.Nodes.getNodeAs<CXXMemberCallExpr>("findexpr")
->getImplicitObjectArgument();
assert(Haystack != nullptr);
const CXXMethodDecl *FindFun =
Result.Nodes.getNodeAs<CXXMethodDecl>("findfun");
assert(FindFun != nullptr);

bool Rev = FindFun->getName().contains("rfind");

if (ComparisonExpr->getBeginLoc().isMacroID())
return;
Expand All @@ -86,10 +110,11 @@ void StringFindStartswithCheck::check(const MatchFinder::MatchResult &Result) {
bool Neg = ComparisonExpr->getOpcode() == BO_NE;

// Create the warning message and a FixIt hint replacing the original expr.
auto Diagnostic = diag(ComparisonExpr->getBeginLoc(),
"use %select{absl::StartsWith|!absl::StartsWith}0 "
"instead of find() %select{==|!=}0 0")
<< Neg;
auto Diagnostic =
diag(ComparisonExpr->getBeginLoc(),
"use %select{absl::StartsWith|!absl::StartsWith}0 "
"instead of %select{find()|rfind()}1 %select{==|!=}0 0")
<< Neg << Rev;

Diagnostic << FixItHint::CreateReplacement(
ComparisonExpr->getSourceRange(),
Expand Down
2 changes: 1 addition & 1 deletion clang-tools-extra/clang-tidy/android/CloexecCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ void CloexecCheck::insertStringFlag(

// Check if the <Mode> may be in the mode string.
const auto *ModeStr = dyn_cast<StringLiteral>(ModeArg->IgnoreParenCasts());
if (!ModeStr || (ModeStr->getString().find(Mode) != StringRef::npos))
if (!ModeStr || ModeStr->getString().contains(Mode))
return;

std::string ReplacementText = buildFixMsgForStringFlag(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ static std::string collapseConsecutive(StringRef Str, char C) {
static bool hasReservedDoubleUnderscore(StringRef Name,
const LangOptions &LangOpts) {
if (LangOpts.CPlusPlus)
return Name.find("__") != StringRef::npos;
return Name.contains("__");
return Name.startswith("__");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ void ImplementationInNamespaceCheck::check(
diag(MatchedDecl->getLocation(),
"declaration must be declared within the '%0' namespace")
<< RequiredNamespace;
return;
}

} // namespace llvm_libc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -829,7 +829,7 @@ bool LoopConvertCheck::isConvertible(ASTContext *Context,
} else if (FixerKind == LFK_PseudoArray) {
// This call is required to obtain the container.
const auto *EndCall = Nodes.getNodeAs<CXXMemberCallExpr>(EndCallName);
if (!EndCall || !dyn_cast<MemberExpr>(EndCall->getCallee()))
if (!EndCall || !isa<MemberExpr>(EndCall->getCallee()))
return false;
}
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ bool containsEscapes(StringRef HayStack, StringRef Escapes) {
return false;

while (BackSlash != StringRef::npos) {
if (Escapes.find(HayStack[BackSlash + 1]) == StringRef::npos)
if (!Escapes.contains(HayStack[BackSlash + 1]))
return false;
BackSlash = HayStack.find('\\', BackSlash + 2);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ static SourceLocation findEndLocation(const Stmt &S, const SourceManager &SM,
SourceRange TokRange(Loc, TokEndLoc);
StringRef Comment = Lexer::getSourceText(
CharSourceRange::getTokenRange(TokRange), SM, Context->getLangOpts());
if (Comment.startswith("/*") && Comment.find('\n') != StringRef::npos) {
if (Comment.startswith("/*") && Comment.contains('\n')) {
// Multi-line block comment, insert brace before.
break;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ void NamedParameterCheck::check(const MatchFinder::MatchResult &Result) {
const char *Begin = SM.getCharacterData(Parm->getBeginLoc());
const char *End = SM.getCharacterData(Parm->getLocation());
StringRef Data(Begin, End - Begin);
if (Data.find("/*") != StringRef::npos)
if (Data.contains("/*"))
continue;

UnnamedParams.push_back(std::make_pair(Function, I));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
abseil-string-find-startswith
=============================

Checks whether a ``std::string::find()`` result is compared with 0, and
suggests replacing with ``absl::StartsWith()``. This is both a readability and
performance issue.
Checks whether a ``std::string::find()`` or ``std::string::rfind()`` result is
compared with 0, and suggests replacing with ``absl::StartsWith()``. This is
both a readability and performance issue.

.. code-block:: c++

string s = "...";
if (s.find("Hello World") == 0) { /* do something */ }
if (s.rfind("Hello World", 0) == 0) { /* do something */ }

becomes

Expand All @@ -19,6 +20,7 @@ becomes

string s = "...";
if (absl::StartsWith(s, "Hello World")) { /* do something */ }
if (absl::StartsWith(s, "Hello World")) { /* do something */ }


Options
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// RUN: %check_clang_tidy %s abseil-string-find-startswith %t -- \
// RUN: -config="{CheckOptions: [{key: 'abseil-string-find-startswith.StringLikeClasses', value: '::std::basic_string;::basic_string'}]}"

using size_t = decltype(sizeof(int));

namespace std {
template <typename T> class allocator {};
template <typename T> class char_traits {};
Expand All @@ -13,12 +15,17 @@ struct basic_string {
~basic_string();
int find(basic_string<C> s, int pos = 0);
int find(const char *s, int pos = 0);
int rfind(basic_string<C> s, int pos = npos);
int rfind(const char *s, int pos = npos);
static constexpr size_t npos = -1;
};
typedef basic_string<char> string;
typedef basic_string<wchar_t> wstring;

struct cxx_string {
int find(const char *s, int pos = 0);
int rfind(const char *s, int pos = npos);
static constexpr size_t npos = -1;
};
} // namespace std

Expand Down Expand Up @@ -61,9 +68,42 @@ void tests(std::string s, global_string s2) {
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use absl::StartsWith
// CHECK-FIXES: {{^[[:space:]]*}}absl::StartsWith(s2, "a");{{$}}

s.rfind("a", 0) == 0;
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use absl::StartsWith instead of rfind() == 0 [abseil-string-find-startswith]
// CHECK-FIXES: {{^[[:space:]]*}}absl::StartsWith(s, "a");{{$}}

s.rfind(s, 0) == 0;
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use absl::StartsWith
// CHECK-FIXES: {{^[[:space:]]*}}absl::StartsWith(s, s);{{$}}

s.rfind("aaa", 0) != 0;
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use !absl::StartsWith
// CHECK-FIXES: {{^[[:space:]]*}}!absl::StartsWith(s, "aaa");{{$}}

s.rfind(foo(foo(bar())), 0) != 0;
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use !absl::StartsWith
// CHECK-FIXES: {{^[[:space:]]*}}!absl::StartsWith(s, foo(foo(bar())));{{$}}

if (s.rfind("....", 0) == 0) { /* do something */ }
// CHECK-MESSAGES: :[[@LINE-1]]:7: warning: use absl::StartsWith
// CHECK-FIXES: {{^[[:space:]]*}}if (absl::StartsWith(s, "....")) { /* do something */ }{{$}}

0 != s.rfind("a", 0);
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use !absl::StartsWith
// CHECK-FIXES: {{^[[:space:]]*}}!absl::StartsWith(s, "a");{{$}}

s2.rfind("a", 0) == 0;
// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: use absl::StartsWith
// CHECK-FIXES: {{^[[:space:]]*}}absl::StartsWith(s2, "a");{{$}}

// expressions that don't trigger the check are here.
A_MACRO(s.find("a"), 0);
A_MACRO(s.rfind("a", 0), 0);
s.find("a", 1) == 0;
s.find("a", 1) == 1;
s.find("a") == 1;
s.rfind("a", 1) == 0;
s.rfind("a", 1) == 1;
s.rfind("a") == 0;
s.rfind("a") == 1;
}
54 changes: 54 additions & 0 deletions clang/docs/UsersManual.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3093,6 +3093,15 @@ There is a set of concrete HW architectures that OpenCL can be compiled for.
Generic Targets
^^^^^^^^^^^^^^^

- A SPIR-V binary can be produced for 32 or 64 bit targets.

.. code-block:: console

$ clang -target spirv32 test.cl
$ clang -target spirv64 test.cl

More details can be found in :ref:`the SPIR-V support section <spir-v>`.

- SPIR is available as a generic target to allow portable bitcode to be produced
that can be used across GPU toolchains. The implementation follows `the SPIR
specification <https://www.khronos.org/spir>`_. There are two flavors
Expand Down Expand Up @@ -3510,6 +3519,51 @@ Clang expects the GCC executable "gcc.exe" compiled for
`Some tests might fail <https://bugs.llvm.org/show_bug.cgi?id=9072>`_ on
``x86_64-w64-mingw32``.

.. _spir-v:

SPIR-V support
--------------

Clang supports generation of SPIR-V conformant to `the OpenCL Environment
Specification
<https://www.khronos.org/registry/OpenCL/specs/3.0-unified/html/OpenCL_Env.html>`_.

To generate SPIR-V binaries, Clang uses the external ``llvm-spirv`` tool from the
`SPIRV-LLVM-Translator repo
<https://github.com/KhronosGroup/SPIRV-LLVM-Translator>`_.

Prior to the generation of SPIR-V binary with Clang, ``llvm-spirv``
should be built or installed. Please refer to `the following instructions
<https://github.com/KhronosGroup/SPIRV-LLVM-Translator#build-instructions>`_
for more details. Clang will expects the ``llvm-spirv`` executable to
be present in the ``PATH`` environment variable. Clang uses ``llvm-spirv``
with `the widely adopted assembly syntax package
<https://github.com/KhronosGroup/SPIRV-LLVM-Translator/#build-with-spirv-tools>`_.

`The versioning
<https://github.com/KhronosGroup/SPIRV-LLVM-Translator/releases>`_ of
``llvm-spirv`` is aligned with Clang major releases. The same applies to the
main development branch. It is therefore important to ensure the ``llvm-spirv``
version is in alignment with the Clang version. For troubleshooting purposes
``llvm-spirv`` can be `tested in isolation
<https://github.com/KhronosGroup/SPIRV-LLVM-Translator#test-instructions>`_.

Example usage for OpenCL kernel compilation:

.. code-block:: console

$ clang -target spirv32 test.cl
$ clang -target spirv64 test.cl

Both invocations of Clang will result in the generation of a SPIR-V binary file
`test.o` for 32 bit and 64 bit respectively. This file can be imported
by an OpenCL driver that support SPIR-V consumption or it can be compiled
further by offline SPIR-V consumer tools.

Converting to SPIR-V produced with the optimization levels other than `-O0` is
currently available as an experimental feature and it is not guaranteed to work
in all cases.

.. _clang-cl:

clang-cl
Expand Down
Loading