Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
330 commits
Select commit Hold shift + click to select a range
5c261c9
Fix typo in parameter name.
adrian-prantl Mar 16, 2020
6ce537c
Revert "[SVE] Auto-generate builtins and header for svld1."
sdesmalen-arm Mar 16, 2020
8ff2dcb
[GlobalISel] add additional lowering support for G_INSERT
gargaroff Mar 11, 2020
e2d8aa6
[lldb] Re-add nullptr check to IRForTarget::RewriteObjCConstString lo…
Teemperor Mar 16, 2020
4060016
Revert "[gn build] (manually) port 8b409eaba"
nico Mar 16, 2020
19a0350
GlobalISel: Fix round lowering
arsenm Mar 14, 2020
88fbd8f
[lldb/Reproducers] Decode run-length encoding in GDB replay server.
JDevlieghere Mar 16, 2020
ddd20ed
[AST] Move dependence computations into a separate file
ilya-biryukov Jan 27, 2020
18c9766
Revert "[AST] Move dependence computations into a separate file"
hokein Mar 16, 2020
8a593e2
[AST] Correct the CXXOperatorCallExpr source range.
hokein Mar 16, 2020
84386b2
AMDGPU: Drop special case f64 fround lowering
arsenm Dec 24, 2019
07a4154
Minor fix to a comment in CodeGenPrepare.cpp
aqjune Mar 16, 2020
09f4bdc
[DexTer] Add step.UNKNOWN check for NoneType line numbers.
Mar 16, 2020
3609110
Implement _LIBCPP_SUPPRESS_DEPRECATED_XXX when testing MSVC's STL
CaseyCarter Mar 16, 2020
c460dc6
AMDGPU/GlobalISel: Fix some illegal scalar argument types
arsenm Feb 24, 2020
80b627d
AMDGPU/GlobalISel: Fix handling of G_ANYEXT with s1 source
arsenm Feb 20, 2020
f594328
[PowerPC] Disable sanitizer test due to failures when using LLD
nemanjai Mar 16, 2020
2e77362
GlobalISel: Fix lower bswap for vectors
arsenm Feb 14, 2020
ebb181c
[X86] matchScalarReduction - add support for partial reductions
RKSimon Mar 16, 2020
9e48422
Revert "[llvm-objdump] Display locations of variables alongside disas…
nico Mar 16, 2020
7d382dc
[Syntax] Build declarator nodes
hlopko Mar 16, 2020
05e7d8d
TTI: Add addrspace parameters to memcpy lowering functions
arsenm Feb 14, 2020
b0bdb18
Utils: Always set alignment when expanding mem intrinsics
arsenm Feb 14, 2020
0616e99
[InstSimplify][SVE] Fix SimplifyGEPInst for scalable vector.
huihzhang Mar 16, 2020
0f2b68d
Implement IR intrinsics for gather prefetch.
Feb 26, 2020
9b15138
[mlir][NFC] Add missing include for std::string.
River707 Mar 16, 2020
0928368
[libc] Provide Arm Optimized Routines for the LLVM libc project.
kbeyls Mar 16, 2020
623cb95
Revert "[InstSimplify] Simplify calls with "returned" attribute"
nico Mar 16, 2020
78d622a
[libc] Add a README.md file to the AOR directory.
Mar 16, 2020
2d723d4
[mlir] Avoid the use of auto in templates to fix MSVC build
River707 Mar 16, 2020
05ff332
[AArch64] Remove unused variable
d0k Mar 16, 2020
378b1e6
[X86] Assign avx512bf16 instructions to the SSEPackedSingle ExeDomain.
topperc Mar 16, 2020
166f83f
[QuantOps] Add the quant region definition
fengliu Mar 10, 2020
74bf95d
[CUDA] Updated CompileCudaWithLLVM doc.
Artem-B Mar 16, 2020
7fa2045
[LoopTerminology] Rotated Loops
baziotis Mar 16, 2020
30dc342
[LoopTerminology] Rotated Loops images
baziotis Mar 16, 2020
df082ac
Basic Block Sections support in LLVM.
tmsri Mar 16, 2020
78ce190
[gn build] Port df082ac45aa
llvmgnsyncbot Mar 16, 2020
2a3723e
[memtag] Plug in stack safety analysis.
eugenis Feb 27, 2020
19fccc5
[Concepts] Fix incorrect control flow when TryAnnotateTypeConstraint …
saarraz Mar 16, 2020
fbb23c9
Fix profiling options on PS4 target:
dmmikulin Mar 10, 2020
5f77720
[Tests] Add test coverage for prefix selection logic
preames Mar 17, 2020
8b3b04e
Make isValidImmForSVEVecImmAddrMode inline static rather than just st…
echristo Mar 17, 2020
d811aee
[MLIR][NFC] update/clean up affine PDT, related utils, its test case
bondhugula Mar 16, 2020
bd5941b
[mlir] Remove the PatternState class and simplify PatternMatchResult.
River707 Mar 17, 2020
c3f0cea
Add target to test basicblock-sections-mir-parse.mir
tmsri Mar 17, 2020
90a2fbd
Switch to TypeSystemClang over to CreateDeserialized() (NFC)
adrian-prantl Mar 5, 2020
85726bb
[X86] Disable fast-isel call lowering for functions with vXi1 argumen…
topperc Mar 17, 2020
ac48b18
[Support] Change isatty to is_displayed
dgg5503 Mar 17, 2020
032743e
[mlir] Add support for the attribute verifiers in the dialect declara…
River707 Mar 17, 2020
39bcc76
[X86] Disable nop padding before instruction following hardcode
KanRobert Mar 13, 2020
d00d6a1
Fix `-Wpedantic` warning. NFC.
darkbuck Mar 17, 2020
f0714cb
[sanitizer] Fix warning on windows
vitalybuka Mar 17, 2020
f20dcc3
Fix unused function warning
vitalybuka Mar 17, 2020
332f0b3
Affine expr simplification for add of const multiple of same expression
bondhugula Feb 10, 2020
fa72b29
[PowerPC] add test cases for target hook isProfitableToHoist - NFC
Mar 17, 2020
80c351c
[InstCombine] Transform to undef incorrect atomic unordered mem intri…
Mar 16, 2020
0b126ee
[NFC][PowerPC] Simplify the logic in lower select_cc
Mar 17, 2020
3f3bda1
[LoopTerminology] Minor fixes in loop rotation
baziotis Mar 17, 2020
8aa07f8
Remove the old SecTaskAccess entry from debugserver's plist
jasonmolenda Mar 17, 2020
8620bb9
[lld] Fix "loop variable creates a copy" warning
vitalybuka Mar 17, 2020
398b497
[NFC] LoopRotate: do issue debug message when not rotating due to ins…
LebedevRI Mar 12, 2020
876bb86
[AST] Move dependence computations into a separate file
hokein Mar 17, 2020
1b5970e
[gn build] Port 876bb86e26c
llvmgnsyncbot Mar 17, 2020
d3d8442
Fix the buildbot error.
hokein Mar 17, 2020
409cf4b
[llvm-readobj][test] - Remove unused Offset key from reloc-types-*.te…
Mar 15, 2020
0095200
[obj2yaml][test] - Remove excessive missing_symtab.test test.
Mar 16, 2020
b83490b
[PowerPC] Fix a typo of the condition of checking the fusion candidate
Mar 17, 2020
5156e38
Fix memtag test.
akuegel Mar 17, 2020
fe134b6
[yaml2obj][test] - Ensure that dynamic section has sh_entsize correct…
Mar 16, 2020
6bbbead
[VE] Move VEInstPrinter.cpp and VEInstPrinter.h into MCTargetDesc
kaz7 Mar 17, 2020
06489ea
[lldb] [Host/NetBSD] Rename Host.cpp to HostNetBSD.cpp
mgorny Mar 17, 2020
af64948
[SVE][Inline-Asm] Add constraints for SVE ACLE types
kmclaughlin-arm Mar 17, 2020
4dd5f1c
[yaml2obj] - Add `ELFYAML::YAMLIntUInt` to fix how we parse a relocat…
Mar 3, 2020
010005f
[Sema][SVE] Reject subscripts on pointers to sizeless types
rsandifo-arm Feb 27, 2020
94489f3
[Sema][SVE] Reject arithmetic on pointers to sizeless types
rsandifo-arm Feb 27, 2020
0947296
[Sema][SVE] Reject sizeless types in exception specs
rsandifo-arm Mar 3, 2020
f5e0f8b
[lldb] Add test for importing ObjC modules in a non-ObjC target
Teemperor Mar 17, 2020
c47f971
[Sema][SVE] Don't allow sizeless objects to be thrown
rsandifo-arm Mar 3, 2020
bfb2ce0
[mlir][vulkan-runner] Use C-compatible wrapper emission.
Mar 17, 2020
72ffb16
[Sema][SVE] Don't allow sizeless types to be caught
rsandifo-arm Mar 3, 2020
c093683
[StackProtector] Catch direct out-of-bounds when checking address-tak…
john-brawn-arm Mar 5, 2020
1d6f919
[SCCP] Explicitly mark values as overdefined (NFC).
fhahn Mar 13, 2020
0818e6c
[LLDB] Add support for AVR breakpoints
aykevl Feb 7, 2020
4add249
[AVR] Add support for the -mdouble=x flag
aykevl Mar 14, 2020
7c6e52a
[lldb] Ptrs->refs in CommandObjectExpression::EvaluateExpression para…
Teemperor Mar 17, 2020
506406c
[Sema][SVE] Reject "new" with sizeless types
rsandifo-arm Mar 3, 2020
c6b8484
[analyzer] StdLibraryFunctionsChecker refactor w/ inheritance
Mar 17, 2020
4ece6f0
[Sema][SVE] Reject "delete" with sizeless types
rsandifo-arm Mar 3, 2020
ac1d23e
Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runti…
Mar 3, 2020
ad357c1
[gn build] Port ac1d23ed7de
llvmgnsyncbot Mar 17, 2020
f955418
[lldb] Tighten checks in TestStats.py
Teemperor Mar 17, 2020
211ba00
[OpenCL] Add pipe and kernel enqueuing builtins
svenvh Mar 17, 2020
0f0564b
[OPENMP50]Initial support for detach clause in task directive.
alexey-bataev Mar 17, 2020
2aba9b6
AMDGPU/GlobalISel: Legalize a16 images
arsenm Jan 26, 2020
83ffbf2
AMDGPU/GlobalISel: Legalize non-a16 non-NSA images
arsenm Jan 27, 2020
d9a012e
AMDGPU/GlobalISel: Adjust image load register type based on dmask
arsenm Jan 28, 2020
d0fe13e
AMDGPU/GlobalISel: Fully handle 0 dmask case during legalize
arsenm Feb 6, 2020
acf6e41
Purge unused diagnostics. NFC.
d0k Mar 17, 2020
73b1da1
[MIPS] Implement MIPS3D vector instructions
atanasyan Mar 17, 2020
873ab73
[ValueLattice] Clarify that constant state can reached from undef.
fhahn Mar 17, 2020
e119980
[mlir] LLVM dialect: move ensureDistinctSuccessors out of std->LLVM c…
ftynse Mar 17, 2020
48a9cf9
[AMDGPU] Enable SEXT divergence driven selection.
alex-t Mar 16, 2020
e8ac825
[AssumeBundles] Detection of Empty bundles
Ralender Mar 17, 2020
a060a17
[Alignment] Add alignTo with skew parameter
gchatelet Mar 17, 2020
039c917
AMDGPU/GlobalISel: Fix asserting on gather4 intrinsics
arsenm Feb 8, 2020
60963fa
[HIP] Let clang recognize .hip extension
yxsamliu Mar 12, 2020
f8dbe50
[docs] Remove outdated note about migration to Git
broadwaylamb Mar 17, 2020
9cd8db1
[NFC][PowerPC] Add 2 test cases to early-ret.mir to test BLR and BCCLR
zhangkangcool Mar 17, 2020
34b8a0d
[Verifier] Silence static analyzer null dereference warning (PR45118)
RKSimon Mar 17, 2020
c9656a3
[DAGCombiner] matchRotateSub - handle shift amount truncation
RKSimon Mar 17, 2020
704cd4d
[clangd] Only minimally escape text when rendering to markdown.
sam-mccall Mar 5, 2020
08ab8c9
[NFC] Add UsedDeclVisitor
yxsamliu Mar 17, 2020
1f93b16
Support repeated machine outlining
jinlin-bayarea Mar 17, 2020
6e29846
[AMDGPU] Fix whole wavefront mode
Flakebi Mar 16, 2020
26f5fb4
Merge from 'sycl' to 'sycl-web'
Mar 17, 2020
dc8257b
Merge from 'master' to 'sycl-web' (#1)
bader Mar 17, 2020
76cf140
[MLIR] Added llvm.fence
Sagox Mar 17, 2020
b9f1b8b
Revert "Support repeated machine outlining"
jinlin-bayarea Mar 17, 2020
5d90f88
[clang][AArch64] readd support for 'p' inline asm constraint
nickdesaulniers Mar 17, 2020
585a3cc
Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec wa…
DimitryAndric Mar 13, 2020
9e2715a
[lldb] Remove template parameters from FunctionTemplateDecl names
shafik Mar 17, 2020
9836917
[SelectionDAGBuilder] Don't set MachinePointerInfo for gather when we…
topperc Mar 17, 2020
b6bcf72
[OPENMP50]Mark expression in detach clause as firstprivate.
alexey-bataev Mar 17, 2020
1bf0c99
[ValueTracking][SVE] Fix isGEPKnownNonNull for scalable vector.
huihzhang Mar 17, 2020
5267f5e
[mlir] Add a hook to PatternRewriter to allow for patterns to notify …
River707 Mar 17, 2020
586565c
[InstCombine] add tests for bool math; NFC
rotateright Mar 17, 2020
be9e3d9
[InstCombine] reduce demand-limited bool math to logic, part 2
rotateright Mar 17, 2020
661c950
[NFC][Attr TableGen] Emit Spelling Enum for Attr types if there >1
Mar 17, 2020
768ead0
[libc] Add a new rule `add_object`.
Mar 17, 2020
3d9e6c4
[libc++] Use env to set the tool's environment on Darwin
ldionne Mar 17, 2020
080dd10
Move RDF from Hexagon to Codegen
scottconstable Mar 17, 2020
5555c04
[gn build] Port 080dd10f7df
llvmgnsyncbot Mar 17, 2020
526c51e
[DwarfDebug] Fix an assertion error when emitting call site info that…
vedantk Mar 17, 2020
51b78a3
[libc++] Bugfix to std::binomial_distribution<int>
atmnpatel Mar 17, 2020
2bd1ca2
[ELF][test] Delete unneeded --no-threads
MaskRay Mar 17, 2020
1756657
[libc] Resolve race condition in sub-process test runner.
PaulkaToast Mar 17, 2020
a72ae99
[SCCP] Split up callsite handling, only propagate result on change (NFC)
fhahn Mar 17, 2020
c48442c
PR45207: Fix crash if constrained-type-specifier annotation forms a
zygoloid Mar 17, 2020
36b8d02
[pstl] A hot fix for exclusive_scan (+ lost enable_if in declaration)
MikeDvorskiy Mar 17, 2020
83989e6
Don't call anyone lazy in the documentation.
AaronBallman Mar 17, 2020
1458bb9
[lit] NFC: Fix typo in log statement
ldionne Mar 17, 2020
c45eaea
[Clang] Undef attribute for global variables
JonChesterfield Mar 17, 2020
68224c1
[TargetLowering] Only demand a rotation's modulo amount bits
RKSimon Mar 17, 2020
d177c36
Add some libc++ revisions to .git-blame-ignore-revs
ldionne Mar 17, 2020
7aa2899
[lldb/PlatformDarwin] Be more robust in computing the SDK path with x…
JDevlieghere Mar 17, 2020
6a38e0e
[MC] Recalculate fragment offsets after relaxation
Mar 13, 2020
a4ef2a7
[libc++] Move some misplaced compile-time flags
ldionne Mar 17, 2020
9a65d68
[mlir] Add target for Shape dialect
jpienaar Mar 17, 2020
a2920c4
[codegen] Fix one more case where `getGlobalDecl` should be used. NFC.
darkbuck Mar 17, 2020
31b7f0e
[clangd] Extend findTarget()'s dependent name heuristic to handle enu…
HighCommander4 Mar 12, 2020
1d19b15
Fix arm build broken by D74361 by dropping align from filecheck pattern
JonChesterfield Mar 17, 2020
363dd3f
[mlir][NFC] Rename QuantOps to Quant
rsuderman Mar 17, 2020
4d60f47
[mlir][NFC] Renamed VectorOps to Vector
rsuderman Mar 17, 2020
3829d85
[lldb/PlatformDarwin] Return POSIX path from FindXcodeContentsDirecto…
JDevlieghere Mar 17, 2020
cc691f3
Disable loader-uninitialized tests on Windows
JonChesterfield Mar 17, 2020
68f163d
[AMDGPU] Print DWARF register numbers in AMDGPUInstPrinter
slinder1 Mar 16, 2020
a11b330
[lldb/Bindings] Check that process isn't None before calling is_alive.
JDevlieghere Mar 17, 2020
c9b454a
AMDGPU/GlobalISel: Fix verifier errors on image atomics
arsenm Mar 18, 2020
f2f8bdc
Fix `-Wunused-variable` warning. NFC.
darkbuck Mar 18, 2020
a9e05d5
[libc] Add AOR testing dependencies for buildbot workers.
PaulkaToast Mar 18, 2020
4e0fe03
Revert "Avoid emitting unreachable SP adjustments after `throw`"
nico Mar 18, 2020
ab2dcff
Support repeated machine outlining
jinlin-bayarea Mar 17, 2020
7b166d5
Revert "Support repeated machine outlining"
jinlin-bayarea Mar 18, 2020
7ca473a
[MLIR] Add support for out of tree external projects using MLIR
stephenneuendorffer Mar 12, 2020
2fae787
[mlir][Vector] Mostly-NFC - Restructure options for lowering to LLVM …
nicolasvasilache Mar 18, 2020
3145427
[mlir][NFC] Replace all usages of PatternMatchResult with LogicalResult
River707 Mar 18, 2020
bd0ca26
[mlir] Update DRR patterns to notify the rewriter why a pattern fails…
River707 Mar 18, 2020
d577193
[DAGCombine] Respect the uses when combine FMA for a*b+/-c*d
Mar 18, 2020
e7a811b
PR45133: Don't crash if the active member of a union changes while it's
zygoloid Mar 18, 2020
34d0d6b
[mlir][DialectConversion] Print the operation being legalized if it h…
River707 Mar 18, 2020
9bca8fc
Revert "AMDGPU/GlobalISel: Fully handle 0 dmask case during legalize"
vitalybuka Mar 18, 2020
4d35055
[libc] Add sigaction
abrachet Mar 18, 2020
974d649
CET for Exception Handle
phoebewang Mar 18, 2020
c3df69f
[Alignment][NFC] Deprecate getTransientStackAlignment
gchatelet Mar 17, 2020
bd763e2
[clang] Fix crash on visiting null nestedNameSpecifier.
hokein Mar 17, 2020
ef56b55
[NFC][ARM] Add thumb triple to test
sparker-arm Mar 18, 2020
5672ae8
[SCCP] Use constant ranges for select, if cond is overdefined.
fhahn Mar 18, 2020
cda2b07
[InstCombine][X86] Tests for variable but in-range per-element shift …
RKSimon Mar 18, 2020
8d019cd
Fix ac1d23ed7de01fb3 interaction with gold plugin
Mar 18, 2020
28c5d97
[ARM,MVE] Add intrinsics and isel for MVE integer VMLA.
statham-arm Mar 11, 2020
928776d
[ARM,MVE] Add intrinsics for the VQDMLAH family.
statham-arm Mar 11, 2020
c5b8146
Reland D75470 [SVE] Auto-generate builtins and header for svld1.
sdesmalen-arm Mar 18, 2020
f4e495a
[InstCombine][X86] simplifyX86varShift - convert variable in-range pe…
RKSimon Mar 18, 2020
0db7244
[SCCP] Precommit some additional tests for integer ranges.
fhahn Mar 18, 2020
a0a3a9c
[DebugInfo] Fix multi-byte entry values in call site values
dstenb Mar 18, 2020
940ba14
Fix possible assertion when using PBQP with debug info
danilaml Mar 17, 2020
4788ca4
[AArch64][SVE] Change pointer type of nontemporal load/store intrinsics
sdesmalen-arm Mar 18, 2020
9bdcd9b
[llvm][SVE] Addressing mode for FF/NF loads.
Mar 9, 2020
b09cce0
[OPENMP50]Codegen for detach clause.
alexey-bataev Mar 18, 2020
db31e2e
[lldb/Target] Support more than 2 symbols in StackFrameRecognizer
medismailben Mar 13, 2020
a8901a0
[mlir] NFC: Fix trivial typos in documents
kiszk Mar 18, 2020
6739805
[ARM] Track epilogue instructions with FrameDestroy flag (NFC)
ostannard Jul 18, 2019
4cf01ed
[hip] Revise `GlobalDecl` constructors. NFC.
darkbuck Mar 18, 2020
2aaafaf
[NFC] Add missing REQUIRES clause to a test
danilaml Mar 18, 2020
96b7080
[NFC][PowerPC] Add a new MIR file to test if-converter pass
zhangkangcool Mar 18, 2020
d000655
[Alignment][NFC] Deprecate getMaxAlignment
gchatelet Mar 18, 2020
73cea83
[IPRA][ARM] Spill extra registers at -Oz
ostannard Jul 18, 2019
85334b0
[NFCI][SCEV] Avoid recursion in SCEVExpander::isHighCostExpansion*()
LebedevRI Mar 18, 2020
f3e297d
Fix build with gcc 7.5 by adding a "redundant move"
joker-eph Mar 18, 2020
4d506da
Fix `warning: extra ‘;’` (NFC)
joker-eph Mar 18, 2020
24c2e61
[InstCombine][X86] Add additional demandedelts style test for in-rang…
RKSimon Mar 18, 2020
3481062
[lldb] [testsuite] Enable forgotten -gsplit-dwarf for 2 testfiles
jankratochvil Mar 18, 2020
c218664
[PowerPC][AIX] Implement by-val caller arguments in a single register.
cebowler Mar 18, 2020
ef64ba8
[InstCombine] GEPOperator::accumulateConstantOffset does not support …
sdesmalen-arm Mar 18, 2020
dd12826
[Syntax] Build template declaration nodes
hlopko Mar 18, 2020
9f981e9
Reland "[gn build] (manually) port 8b409eaba"
nico Mar 18, 2020
06150e8
[ValueTracking] Add computeKnownBits DemandedElts support to AND inst…
RKSimon Mar 18, 2020
f57290e
[gn build] add rebase changes that should have been in 9f981e9adf9c8d…
nico Mar 18, 2020
d1a7bfc
[AMDGPU] Fix AMDGPUUnifyDivergentExitNodes
piotrAMD Mar 18, 2020
ea4597e
Reapply "AMDGPU/GlobalISel: Fully handle 0 dmask case during legalize"
arsenm Mar 18, 2020
4ea1baf
AMDGPU: Initial, crude support for indirect calls
arsenm Mar 17, 2020
fc2a5ef
[NFC][PowerPC] Update test
sparker-arm Mar 18, 2020
642a424
[gn build] remove a workaround that is no longer needed
nico Mar 18, 2020
04a309d
[libc] Adding memcpy implementation for x86_64
gchatelet Feb 11, 2020
881f5b5
Revert "[Syntax] Build template declaration nodes"
nico Mar 18, 2020
e13d153
[ARM,MVE] Add intrinsics for the VQDMLAD family.
statham-arm Mar 18, 2020
e6a7480
[VPlan] Use underlying value for printing, if available.
fhahn Mar 18, 2020
0d89627
Support repeated machine outlining
jinlin-bayarea Mar 17, 2020
1cc09dc
Add missing module map entry.
adrian-prantl Mar 18, 2020
1e4ee0b
[Dominators] Fixup comments in GenericDominatorTreeConstruction. NFC.
kuhar Mar 18, 2020
dc5f982
[GlobalISel] Port some basic undef combines from DAGCombiner.cpp
Mar 18, 2020
9c6458e
[InstSimplify] Add bitreverse/bswap vector tests
RKSimon Mar 18, 2020
746bd86
Replace get*Alignment() methods with get*Align() equivalents.
RKSimon Mar 18, 2020
e009fad
[PowerPC] Remove UB from PPCInstrInfo when handling rotates fed by co…
nemanjai Mar 18, 2020
f8e8f0a
[TSan] Support pointer authentication in setjmp/longjmp interceptors
Mar 16, 2020
6f79f80
[HIP] Fix duplicate clang -cc1 options on MSVC toolchain
yxsamliu Mar 11, 2020
1010c44
[ValueTracking] Add computeKnownBits DemandedElts support to EXTRACTE…
RKSimon Mar 18, 2020
2f8894a
[OPENMP50]Add support for extended device clause in target directives.
alexey-bataev Mar 18, 2020
ebec984
[AliasAnalysis] Misc fixes for checking aliasing with scalable types.
efriedma-quic Mar 16, 2020
4e88308
[libc] Add a missing deps to the linux syscalls target.
Mar 18, 2020
e225e77
[TableGen][GlobalISel] Rework RegisterBankEmitter for easier const co…
lewis-revill Mar 18, 2020
e9f22fd
[TableGen][GlobalISel] Account for HwMode in RegisterBank register sizes
lewis-revill Mar 18, 2020
4be504a
[mlir] Add support for detecting single use callables in the Inliner.
River707 Mar 18, 2020
b40ee7f
[lldb/MemoryHistoryAsan] Fix address resolution for recorded backtraces
fredriss Mar 18, 2020
1e43132
[mlir][LLVM] Add masked reads and writes.
nicolasvasilache Mar 18, 2020
6bdb0ef
[InstSimplify] Regenerate OR tests
RKSimon Mar 18, 2020
47ce140
[InstSimplify] Add missing vector OR test to show lack of DemandedElt…
RKSimon Mar 18, 2020
9d40292
[ValueTracking] Add computeKnownBits DemandedElts support to XOR inst…
RKSimon Mar 18, 2020
64a5e57
[mlir] Disable notifyMatchFailure in NDEBUG
River707 Mar 18, 2020
498b538
[SelectionDAGBuilder][FPEnv] Take into account SelectionDAG continuou…
topperc Mar 18, 2020
22c66c1
[JumpThreading] add a miscompile test based on discussion in D76332; NFC
rotateright Mar 18, 2020
c682a60
[Fuchsia] Include llvm-gsymutil tool in the Fuchsia toolchain
petrhosek Mar 15, 2020
e24e95f
Remove CompositeType class.
efriedma-quic Mar 3, 2020
30a60bf
Merge from 'sycl' to 'sycl-web'
Mar 19, 2020
2a5a4fd
Merge from 'master' to 'sycl-web' (#1)
bader Mar 19, 2020
5ca6df1
Pulldown LLVM for e24e95fe900ab9d84017e4210b305d6c3a44abb0
vladimirlaz Mar 23, 2020
e3d6c68
Fix of debug info test, failed due to upstream llvm-objdump option ch…
Mar 18, 2020
334c71d
Implementation of SPV_INTEL_inline_assembly extension
Mar 18, 2020
8be9dec
Revert "[SYCL] XFAIL test on windows to unblock pulldown"
vladimirlaz Mar 23, 2020
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
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,9 @@

# r280751: [Coding style change][lldb] Moved LLDB code base to use LLVM style
b9c1b51e45b845debb76d8658edabca70ca56079

# r302421: That change incorrectly changed line endings in some libc++ files
9669df28d4fd3c52d09f451186bd217cdc3322c0

# r302496: That is the revert of r302421
ff63090b0e1072bd398b8efef8ae2291613a6ec9
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,16 @@ SpecialMemberFunctionsCheck::SpecialMemberFunctionsCheck(
StringRef Name, ClangTidyContext *Context)
: ClangTidyCheck(Name, Context),
AllowMissingMoveFunctions(Options.get("AllowMissingMoveFunctions", 0)),
AllowSoleDefaultDtor(Options.get("AllowSoleDefaultDtor", 0)) {}
AllowSoleDefaultDtor(Options.get("AllowSoleDefaultDtor", 0)),
AllowMissingMoveFunctionsWhenCopyIsDeleted(
Options.get("AllowMissingMoveFunctionsWhenCopyIsDeleted", 0)) {}

void SpecialMemberFunctionsCheck::storeOptions(
ClangTidyOptions::OptionMap &Opts) {
Options.store(Opts, "AllowMissingMoveFunctions", AllowMissingMoveFunctions);
Options.store(Opts, "AllowSoleDefaultDtor", AllowSoleDefaultDtor);
Options.store(Opts, "AllowMissingMoveFunctionsWhenCopyIsDeleted",
AllowMissingMoveFunctionsWhenCopyIsDeleted);
}

void SpecialMemberFunctionsCheck::registerMatchers(MatchFinder *Finder) {
Expand Down Expand Up @@ -103,17 +107,18 @@ void SpecialMemberFunctionsCheck::check(

ClassDefId ID(MatchedDecl->getLocation(), std::string(MatchedDecl->getName()));

auto StoreMember = [this, &ID](SpecialMemberFunctionKind Kind) {
llvm::SmallVectorImpl<SpecialMemberFunctionKind> &Members =
auto StoreMember = [this, &ID](SpecialMemberFunctionData data) {
llvm::SmallVectorImpl<SpecialMemberFunctionData> &Members =
ClassWithSpecialMembers[ID];
if (!llvm::is_contained(Members, Kind))
Members.push_back(Kind);
if (!llvm::is_contained(Members, data))
Members.push_back(std::move(data));
};

if (const auto *Dtor = Result.Nodes.getNodeAs<CXXMethodDecl>("dtor")) {
StoreMember(Dtor->isDefaulted()
? SpecialMemberFunctionKind::DefaultDestructor
: SpecialMemberFunctionKind::NonDefaultDestructor);
StoreMember({Dtor->isDefaulted()
? SpecialMemberFunctionKind::DefaultDestructor
: SpecialMemberFunctionKind::NonDefaultDestructor,
Dtor->isDeleted()});
}

std::initializer_list<std::pair<std::string, SpecialMemberFunctionKind>>
Expand All @@ -123,8 +128,9 @@ void SpecialMemberFunctionsCheck::check(
{"move-assign", SpecialMemberFunctionKind::MoveAssignment}};

for (const auto &KV : Matchers)
if (Result.Nodes.getNodeAs<CXXMethodDecl>(KV.first)) {
StoreMember(KV.second);
if (const auto *MethodDecl =
Result.Nodes.getNodeAs<CXXMethodDecl>(KV.first)) {
StoreMember({KV.second, MethodDecl->isDeleted()});
}
}

Expand All @@ -136,11 +142,19 @@ void SpecialMemberFunctionsCheck::onEndOfTranslationUnit() {

void SpecialMemberFunctionsCheck::checkForMissingMembers(
const ClassDefId &ID,
llvm::ArrayRef<SpecialMemberFunctionKind> DefinedMembers) {
llvm::ArrayRef<SpecialMemberFunctionData> DefinedMembers) {
llvm::SmallVector<SpecialMemberFunctionKind, 5> MissingMembers;

auto HasMember = [&](SpecialMemberFunctionKind Kind) {
return llvm::is_contained(DefinedMembers, Kind);
return llvm::any_of(DefinedMembers, [Kind](const auto &data) {
return data.FunctionKind == Kind;
});
};

auto IsDeleted = [&](SpecialMemberFunctionKind Kind) {
return llvm::any_of(DefinedMembers, [Kind](const auto &data) {
return data.FunctionKind == Kind && data.IsDeleted;
});
};

auto RequireMember = [&](SpecialMemberFunctionKind Kind) {
Expand Down Expand Up @@ -171,16 +185,23 @@ void SpecialMemberFunctionsCheck::checkForMissingMembers(
RequireMember(SpecialMemberFunctionKind::CopyAssignment);
}

if (RequireFive) {
if (RequireFive &&
!(AllowMissingMoveFunctionsWhenCopyIsDeleted &&
(IsDeleted(SpecialMemberFunctionKind::CopyConstructor) &&
IsDeleted(SpecialMemberFunctionKind::CopyAssignment)))) {
assert(RequireThree);
RequireMember(SpecialMemberFunctionKind::MoveConstructor);
RequireMember(SpecialMemberFunctionKind::MoveAssignment);
}

if (!MissingMembers.empty())
if (!MissingMembers.empty()) {
llvm::SmallVector<SpecialMemberFunctionKind, 5> DefinedMemberKinds;
llvm::transform(DefinedMembers, std::back_inserter(DefinedMemberKinds),
[](const auto &data) { return data.FunctionKind; });
diag(ID.first, "class '%0' defines %1 but does not define %2")
<< ID.second << cppcoreguidelines::join(DefinedMembers, " and ")
<< ID.second << cppcoreguidelines::join(DefinedMemberKinds, " and ")
<< cppcoreguidelines::join(MissingMembers, " or ");
}
}

} // namespace cppcoreguidelines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,30 @@ class SpecialMemberFunctionsCheck : public ClangTidyCheck {
MoveAssignment
};

struct SpecialMemberFunctionData {
SpecialMemberFunctionKind FunctionKind;
bool IsDeleted;

bool operator==(const SpecialMemberFunctionData &Other) {
return (Other.FunctionKind == FunctionKind) &&
(Other.IsDeleted == IsDeleted);
}
};

using ClassDefId = std::pair<SourceLocation, std::string>;

using ClassDefiningSpecialMembersMap =
llvm::DenseMap<ClassDefId,
llvm::SmallVector<SpecialMemberFunctionKind, 5>>;
llvm::SmallVector<SpecialMemberFunctionData, 5>>;

private:
void checkForMissingMembers(
const ClassDefId &ID,
llvm::ArrayRef<SpecialMemberFunctionKind> DefinedSpecialMembers);
llvm::ArrayRef<SpecialMemberFunctionData> DefinedSpecialMembers);

const bool AllowMissingMoveFunctions;
const bool AllowSoleDefaultDtor;
const bool AllowMissingMoveFunctionsWhenCopyIsDeleted;
ClassDefiningSpecialMembersMap ClassWithSpecialMembers;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -649,9 +649,14 @@ StringRef LoopConvertCheck::getContainerString(ASTContext *Context,
const ForStmt *Loop,
const Expr *ContainerExpr) {
StringRef ContainerString;
if (isa<CXXThisExpr>(ContainerExpr->IgnoreParenImpCasts())) {
ContainerExpr = ContainerExpr->IgnoreParenImpCasts();
if (isa<CXXThisExpr>(ContainerExpr)) {
ContainerString = "this";
} else {
// For CXXOperatorCallExpr (e.g. vector_ptr->size()), its first argument is
// the class object (vector_ptr) we are targeting.
if (const auto* E = dyn_cast<CXXOperatorCallExpr>(ContainerExpr))
ContainerExpr = E->getArg(0);
ContainerString =
getStringFromRange(Context->getSourceManager(), Context->getLangOpts(),
ContainerExpr->getSourceRange());
Expand Down
6 changes: 6 additions & 0 deletions clang-tools-extra/clangd/FindTarget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/raw_ostream.h"
#include <iterator>
#include <utility>
#include <vector>

Expand Down Expand Up @@ -76,6 +77,11 @@ std::vector<const NamedDecl *> getMembersReferencedViaDependentName(
bool IsNonstaticMember) {
if (!T)
return {};
if (auto *ET = T->getAs<EnumType>()) {
auto Result =
ET->getDecl()->lookup(NameFactory(ET->getDecl()->getASTContext()));
return {Result.begin(), Result.end()};
}
if (auto *ICNT = T->getAs<InjectedClassNameType>()) {
T = ICNT->getInjectedSpecializationType().getTypePtrOrNull();
}
Expand Down
151 changes: 136 additions & 15 deletions clang-tools-extra/clangd/FormattedString.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/raw_ostream.h"
Expand All @@ -26,23 +27,143 @@ namespace clangd {
namespace markup {

namespace {

// Is <contents a plausible start to an HTML tag?
// Contents may not be the rest of the line, but it's the rest of the plain
// text, so we expect to see at least the tag name.
bool looksLikeTag(llvm::StringRef Contents) {
if (Contents.empty())
return false;
if (Contents.front() == '!' || Contents.front() == '?' ||
Contents.front() == '/')
return true;
// Check the start of the tag name.
if (!llvm::isAlpha(Contents.front()))
return false;
// Drop rest of the tag name, and following whitespace.
Contents = Contents
.drop_while([](char C) {
return llvm::isAlnum(C) || C == '-' || C == '_' || C == ':';
})
.drop_while(isWhitespace);
// The rest of the tag consists of attributes, which have restrictive names.
// If we hit '=', all bets are off (attribute values can contain anything).
for (; !Contents.empty(); Contents = Contents.drop_front()) {
if (llvm::isAlnum(Contents.front()) || isWhitespace(Contents.front()))
continue;
if (Contents.front() == '>' || Contents.startswith("/>"))
return true; // May close the tag.
if (Contents.front() == '=')
return true; // Don't try to parse attribute values.
return false; // Random punctuation means this isn't a tag.
}
return true; // Potentially incomplete tag.
}

// Tests whether C should be backslash-escaped in markdown.
// The string being escaped is Before + C + After. This is part of a paragraph.
// StartsLine indicates whether `Before` is the start of the line.
// After may not be everything until the end of the line.
//
// It's always safe to escape punctuation, but want minimal escaping.
// The strategy is to escape the first character of anything that might start
// a markdown grammar construct.
bool needsLeadingEscape(char C, llvm::StringRef Before, llvm::StringRef After,
bool StartsLine) {
assert(Before.take_while(isWhitespace).empty());
auto RulerLength = [&]() -> /*Length*/ unsigned {
if (!StartsLine || !Before.empty())
return false;
llvm::StringRef A = After.rtrim();
return llvm::all_of(A, [C](char D) { return C == D; }) ? 1 + A.size() : 0;
};
auto IsBullet = [&]() {
return StartsLine && Before.empty() &&
(After.empty() || After.startswith(" "));
};
auto SpaceSurrounds = [&]() {
return (After.empty() || isWhitespace(After.front())) &&
(Before.empty() || isWhitespace(Before.back()));
};
auto WordSurrounds = [&]() {
return (!After.empty() && llvm::isAlnum(After.front())) &&
(!Before.empty() && llvm::isAlnum(Before.back()));
};

switch (C) {
case '\\': // Escaped character.
return true;
case '`': // Code block or inline code
// Any number of backticks can delimit an inline code block that can end
// anywhere (including on another line). We must escape them all.
return true;
case '~': // Code block
return StartsLine && Before.empty() && After.startswith("~~");
case '#': { // ATX heading.
if (!StartsLine || !Before.empty())
return false;
llvm::StringRef Rest = After.ltrim(C);
return Rest.empty() || Rest.startswith(" ");
}
case ']': // Link or link reference.
// We escape ] rather than [ here, because it's more constrained:
// ](...) is an in-line link
// ]: is a link reference
// The following are only links if the link reference exists:
// ] by itself is a shortcut link
// ][...] is an out-of-line link
// Because we never emit link references, we don't need to handle these.
return After.startswith(":") || After.startswith("(");
case '=': // Setex heading.
return RulerLength() > 0;
case '_': // Horizontal ruler or matched delimiter.
if (RulerLength() >= 3)
return true;
// Not a delimiter if surrounded by space, or inside a word.
// (The rules at word boundaries are subtle).
return !(SpaceSurrounds() || WordSurrounds());
case '-': // Setex heading, horizontal ruler, or bullet.
if (RulerLength() > 0)
return true;
return IsBullet();
case '+': // Bullet list.
return IsBullet();
case '*': // Bullet list, horizontal ruler, or delimiter.
return IsBullet() || RulerLength() >= 3 || !SpaceSurrounds();
case '<': // HTML tag (or autolink, which we choose not to escape)
return looksLikeTag(After);
case '>': // Quote marker. Needs escaping at start of line.
return StartsLine && Before.empty();
case '&': { // HTML entity reference
auto End = After.find(';');
if (End == llvm::StringRef::npos)
return false;
llvm::StringRef Content = After.substr(0, End);
if (Content.consume_front("#")) {
if (Content.consume_front("x") || Content.consume_front("X"))
return llvm::all_of(Content, llvm::isHexDigit);
return llvm::all_of(Content, llvm::isDigit);
}
return llvm::all_of(Content, llvm::isAlpha);
}
case '.': // Numbered list indicator. Escape 12. -> 12\. at start of line.
case ')':
return StartsLine && !Before.empty() &&
llvm::all_of(Before, llvm::isDigit) && After.startswith(" ");
default:
return false;
}
}

/// Escape a markdown text block. Ensures the punctuation will not introduce
/// any of the markdown constructs.
std::string renderText(llvm::StringRef Input) {
// Escaping ASCII punctuation ensures we can't start a markdown construct.
constexpr llvm::StringLiteral Punctuation =
R"txt(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)txt";

std::string renderText(llvm::StringRef Input, bool StartsLine) {
std::string R;
for (size_t From = 0; From < Input.size();) {
size_t Next = Input.find_first_of(Punctuation, From);
R += Input.substr(From, Next - From);
if (Next == llvm::StringRef::npos)
break;
R += "\\";
R += Input[Next];

From = Next + 1;
for (unsigned I = 0; I < Input.size(); ++I) {
if (needsLeadingEscape(Input[I], Input.substr(0, I), Input.substr(I + 1),
StartsLine))
R.push_back('\\');
R.push_back(Input[I]);
}
return R;
}
Expand Down Expand Up @@ -236,7 +357,7 @@ void Paragraph::renderMarkdown(llvm::raw_ostream &OS) const {
OS << Sep;
switch (C.Kind) {
case Chunk::PlainText:
OS << renderText(C.Contents);
OS << renderText(C.Contents, Sep.empty());
break;
case Chunk::InlineCode:
OS << renderInlineBlock(C.Contents);
Expand Down
2 changes: 2 additions & 0 deletions clang-tools-extra/clangd/FormattedString.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ class Document {
BulletList &addBulletList();

/// Doesn't contain any trailing newlines.
/// We try to make the markdown human-readable, e.g. avoid extra escaping.
/// At least one client (coc.nvim) displays the markdown verbatim!
std::string asMarkdown() const;
/// Doesn't contain any trailing newlines.
std::string asPlainText() const;
Expand Down
Loading