8000 Defer diag by premanandrao · Pull Request #13 · llvm/llvm-project · GitHub
[go: up one dir, main page]

Skip to content

Defer diag #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2,790 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
2790 commits
Select commit Hold shift + click to select a range
73759c4
[AArch64][SVE2] Asm: add integer pairwise arithmetic instructions
c-rhodes May 21, 2019
e1f4b5e
[AArch64][SVE2] Asm: add integer unary instructions (predicated)
c-rhodes May 21, 2019
47cd75b
[llvm-objcopy] Strip file symbols with --strip-unneeded
eleviant May 21, 2019
e961517
DWARF: Port debug_addr over to DWARFContext
labath May 21, 2019
c02a9cb
[WebAssembly] Refactor synthetic sections and relocation processing. …
sbc100 May 21, 2019
be29a96
[libclang] visit c++14 lambda capture init expressions
nikolaivk May 21, 2019
25d9e5f
[AArch64] Skip mask checks for masks with an odd number of elements.
fhahn May 21, 2019
cd32d7f
[WebAssembly] Add __start_/_stop_ symbols for data sections
sbc100 May 21, 2019
1a66537
[PPC64] Update LocalEntry from assigned symbols
MaskRay May 21, 2019
af1d421
[CGBuiltin] dumpRecord - remove unused field offset. NFCI.
RKSimon May 21, 2019
1686b70
[MergeICmps] Preserve the dominator tree.
legrosbuffle May 21, 2019
44c9c77
[llvm-objdump] Make --disassemble-functions imply -d
May 21, 2019
95b6878
[NFC][X86][AArch64] Add some more tests for shift amount masking
LebedevRI May 21, 2019
91783dd
[CodeGenModule] BlockByrefHelpers - add missing uninitialized variabl…
RKSimon May 21, 2019
fd62634
[X86][SSE] Add shuffle tests for 'splat3' patterns.
RKSimon May 21, 2019
a6265c3
[WebAssembly] Add --reproduce.
rui314 May 21, 2019
f412b20
[DebugInfo] Handle -main-file-name correctly for asm source.
pogo59 May 21, 2019
1e34ed3
Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..."
inglorion May 21, 2019
c752962
[DebugInfo] Handle '# line "file"' correctly for asm source.
pogo59 May 21, 2019
66b6f85
Fix test failure.
rui314 May 21, 2019
6092239
De-Window-ize a test
pogo59 May 21, 2019
a5e0596
[DebugInfo] Fix tests missed by r362148
pogo59 May 21, 2019
5ef6e0a
[clangd] Add tweak to convert normal to raw string literal, when it c…
sam-mccall May 21, 2019
29f5dea
[ScheduleDAGInstrs] Compute topological ordering on demand.
fhahn May 21, 2019
4876f1e
[NFC][X86][AArch64] Shift amount masking: tests that show that 'neg' …
LebedevRI May 21, 2019
788bb8a
[lldb-mi] Include full path in the -data-disassemble response
tkrasnukha May 21, 2019
9a92212
Fix typo in r361251.
pogo59 May 21, 2019
7b9e486
[MergeICmps][NFC] Make BCEAtom move-only.
legrosbuffle May 21, 2019
2a8945d
[clangd] Turn no-parse-completion on by when preamble isn't ready. Ad…
sam-mccall May 21, 2019
c22baad
gn build: Merge r361233
nico May 21, 2019
19d4000
gn build: Merge r361252
nico May 21, 2019
8fe9971
[ARM][CMSE] Add commandline option and feature macro
javedabsar May 21, 2019
30f1d24
gn build: Run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.p…
nico May 21, 2019
24efe91
Revert r361257 "[MergeICmps][NFC] Make BCEAtom move-only."
legrosbuffle May 21, 2019
10c0916
[Syntax] Rename TokensTest to SyntaxTests. NFC
ilya-biryukov May 21, 2019
b4b9556
Add support for dumping AST comment nodes to JSON.
AaronBallman May 21, 2019
161eaf7
[ELF] Deleted unused ComdatGroups member variable left by D61854
MaskRay May 21, 2019
75541ec
gn build: Merge r361264
nico May 21, 2019
8422854
[DAGCombiner] prevent unsafe reassociation of FP ops
rotateright May 21, 2019
291145d
[OPENMP][NVPTX]Mark more functions as always_inline for better
alexey-bataev May 21, 2019
fa72e51
[X86][SSE] computeKnownBitsForTargetNode - add X86ISD::ANDNP support
RKSimon May 21, 2019
ced1b97
Fix BUILD_SHARED_LIBS for clang which broke in D61909
llvm-beanz May 21, 2019
b7008cb
[docs] Add new document on building distributions
llvm-beanz May 21, 2019
2edb754
Revert "[WebAssembly] Add __start_/_stop_ symbols for data sections"
sbc100 May 21, 2019
a274e64
Do not use the incorrect attribute spelling list index when translati…
AaronBallman May 21, 2019
4bd7e2f
[CMake] One more stab at fixing BUILD_SHARED_LIBS
llvm-beanz May 21, 2019
b18297d
[Dsymutil] Remove redundant argument (NFC)
JDevlieghere May 21, 2019
a39b2d0
Remove `SymbolFileDWARF *` when there is already `DWARFUnit *`
jankratochvil May 21, 2019
358fe9b
[clang][Darwin] Refactor header search path logic into the driver
ldionne May 21, 2019
44439e9
[Bugpoint] fix use-after-move. NFC
nickdesaulniers May 21, 2019
ee20918
[cmake] Add custom command to touch archives on Darwin so ninja won't…
donhinton May 21, 2019
a398522
[MergeICmps] Make sorting strongly stable on the rhs.
legrosbuffle May 21, 2019
1b18e33
[cmake] Bug in r361281: make include optional and fix typo which migh…
donhinton May 21, 2019
0ecdbf2
[OPENMP]Use the attributes for dso locality when building for device.
alexey-bataev May 21, 2019
81f60fb
[SelectionDAG] remove redundant code; NFCI
rotateright May 21, 2019
492497a
[LibTooling] Address post-commit feedback for r361152
ymand May 21, 2019
7a97ad7
[cmake] Try to make cmake happy and fix bots.
donhinton May 21, 2019
aa03bc3
[SelectionDAG] fold insert subvector of undef into undef
rotateright May 21, 2019
620234d
[X86] Remove an unneeded ZERO_EXTEND creation from LowerINTRINSIC_W_C…
topperc May 21, 2019
1579f57
[Intrinsic] Signed Fixed Point Saturation Multiplication Intrinsic
PiJoules May 21, 2019
67e9c7e
[DeLICM] Use polly::singleton to allow empty result.
Meinersbur May 21, 2019
264a200
[cmake] Don't use VERSION_GREATER_EQUAL in cmake versions prior to 3.72.
donhinton May 21, 2019
c864c59
Fix for sphinx bot warning
PiJoules May 21, 2019
d907dd3
Fix register coalescer failure to prune value
rampitec May 21, 2019
97641d3
[OpenMP][libomptarget] Enable requires flags for target libraries.
doru1004 May 21, 2019
79d3226
Fix LLDB warnings when compiling with Clang 8.0
aganea May 21, 2019
81d6a60
[DebugInfo] Don't emit checksums when compiling a preprocessed CPP
aganea May 21, 2019
f21bdd9
Fix test to put its outputs into the temp directory.
zygoloid May 21, 2019
f32b10b
[OpenMP] Add support for registering requires directives with the run…
doru1004 May 21, 2019
2e38d71
[PowerPC][NFC] Add a tests for Reordering CSR reloads in epilogue to …
May 21, 2019
0e7d48c
[c++20] P0780R2: Support pack-expansion of init-captures.
zygoloid May 21, 2019
48bd2b0
Fix test failures after r361278 on non-Darwin platforms and when
zygoloid May 21, 2019
eb9a7f1
Remove unicode character from test
PiJoules May 21, 2019
81613fb
[NFC][X86][AArch64] Add tests for sinking of add/sub by constant thro…
LebedevRI May 21, 2019
399eedb
[asan] Replace assignments with internal_memcpy ErrorDescription
vitalybuka May 21, 2019
28c8026
[asan] clang-format parent patch
vitalybuka May 21, 2019
611b9c3
Move csr-save-restore-order.ll to the right place
May 21, 2019
cd91f27
build: enable CMake policy 0077
compnerd May 21, 2019
e237df2
[NFC][InstCombine] Add unary FNeg tests to X86/x86-avx512.ll
mcinally May 21, 2019
09ae4da
[OpenMP] Add implementation to two OMPT API routines
jpeyton52 May 21, 2019
7afe7d3
[Test] Fix conflicting test names.
JDevlieghere May 21, 2019
c120981
[NFC][InstCombine] Add unary fneg tests to operand-complexity.ll.
mcinally May 21, 2019
e228c14
Let -static-pie win if it is specified along with -pie or -static.
May 21, 2019
0727a72
[libFuzzer] Reduce flakiness of merge-sigusr.test.
morehouse May 21, 2019
d1cc4b0
[Driver] Verify GCCInstallation is valid
nickdesaulniers May 21, 2019
1e4b398
[X86] Add large integer comparison tests for PR41971; NFC
nikic May 21, 2019
92efe99
[CommandInterpreter] Fix SkipAppInitFiles setter
JDevlieghere May 21, 2019
e5fb775
[InstCombine] add more tests for shuffle folding; NFC
rotateright May 21, 2019
820af59
[NFC][Thumb2] Autogenerate thumb2-ldr_pre.ll test
LebedevRI May 21, 2019
d782bd5
[NFC][X86] Autogenerate ragreedy-hoist-spill.ll test
LebedevRI May 21, 2019
19c1818
[NFC][AMDGPU] Autogenerate llvm.amdgcn.s.barrier.ll test
LebedevRI May 21, 2019
324fb4a
[FileSystem] Fix regression in FileSystem::Resolve
JDevlieghere May 21, 2019
31cb83e
[ORC] Guarantee unique JITDylib names in lli, add usage notes to crea…
lhames May 21, 2019
dbd4f2e
Rename identifiers to spell out analyze; NFC.
AaronBallman May 21, 2019
75f17fe
[libFuzzer] Ignore exit status of wait in merge-sigusr.test.
morehouse May 21, 2019
f03cdfa
[WebAssembly] Add the signature for the new llround builtin function
May 21, 2019
71c863f
Refactor: split Uninitialized state on APValue into an "Absent" state
zygoloid May 21, 2019
83b02d3
[c++20] P1330R0: permit simple-assignments that change the active member
zygoloid May 21, 2019
a58b022
AMDGPU: Fix not marking new gfx10 SGPRs as CSRs
arsenm May 21, 2019
b74d066
AMDGPU: Assume call pseudos are convergent
arsenm May 21, 2019
f93dd10
AMDGPU: Add some tests for inlineasm behavior
arsenm May 21, 2019
fb405e7
AMDGPU: Assume calls read exec
arsenm May 21, 2019
8996170
Fix target property to make BUILD_SHARED_LIBS work
llvm-beanz May 21, 2019
eeeed31
[PragmaHandler] Expose `#pragma` location
jdenny-ornl May 21, 2019
beba938
[libFuzzer] Kill by session ID in merge-sigusr.test.
morehouse May 21, 2019
5f870f5
[Symbol] Remove dead code
bulbazord May 22, 2019
34a0b08
[InstCombine] fold shuffles of insert_subvectors
rotateright May 22, 2019
be70a0c
[libFuzzer] Sleep after process exits in merge-sigusr.test.
morehouse May 22, 2019
ee5efac
[Analysis] Link library dependencies to Analysis plugins
petrhosek May 22, 2019
0d0fe70
[Docs] fix formatting for bullet list; NFC
rotateright May 22, 2019
effbbba
[X86] [CET] Deal with return-twice function such as vfork, setjmp when
phoebewang May 22, 2019
ef1afe0
[Docs] Increase Doxygen cache size
donhinton May 22, 2019
986f46a
[clang-tidy] remove default header-filter for run-clang-tidy
donhinton May 22, 2019
890865c
[docs] Fix troff macro (.F1 -> .Fl) in ld.lld.1
MaskRay May 22, 2019
83206f3
[PowerPC] [ISEL] select x-form instruction for unaligned offset
May 22, 2019
b879a0b
[PowerPC] use meaningful name for displacement form aligned with x-fo…
May 22, 2019
304d5ba
Speculative fix for std stream destruction order on Windows.
EricWF May 22, 2019
b676c26
[NFC] Remove a blank line (test commit)
nuta May 22, 2019
49f80ff
Simplify the logic to instantiate Symbols. Should be NFC.
rui314 May 22, 2019
1ec133e
Properly categorize llvm-objdump options
May 22, 2019
0d0162e
[X86] Don't compare i128 through vector if construction not cheap (PR…
nikic May 22, 2019
5b817c4
Fixed a -Wunused-variable warning when assertions are disabled
gribozavr May 22, 2019
5a3bbed
[AArch64] Subtarget crypto extension defaults
May 22, 2019
b45c020
[PPC64] Parse -elfv1 -elfv2 when specified on target triple
MaskRay May 22, 2019
6ac150d
[MIR] Add simple PRE pass to MachineCSE
anton-afanasyev May 22, 2019
ffb0bf0
[Sanitizer] Add interceptor for wcsdup
labath May 22, 2019
395b99c
Delete unnecessary copy ctors
MaskRay May 22, 2019
027ddd1
[ELF] Improve error message for relocations to symbols defined in dis…
MaskRay May 22, 2019
0f8186a
DWARF: Introduce DWARFTypeUnit class
labath May 22, 2019
df8734b
DWARFDebugInfoEntry: remove unused variable
labath May 22, 2019
e3b9bb7
Add AST logging
May 22, 2019
77993c6
[PPC64] Fix PPC64TargetInfo after D61950
MaskRay May 22, 2019
58af636
Copy symbol length when we replace a symbol.
rui314 May 22, 2019
9bb1242
[PPC64] Fix PPC64TargetInfo ABI on clang side after D61950
MaskRay May 22, 2019
7a08105
Re-land r361257 "[MergeICmps][NFC] Make BCEAtom move-only.""
legrosbuffle May 22, 2019
b3d0510
[llvm-dlltool] Respect NONAME keyword
mstorsjo May 22, 2019
35a0e64
[Driver][Windows] Add dependent lib argument for -fprofile-generate a…
rgal May 22, 2019
a6144e4
[TargetMachine] error message unsupported code model
May 22, 2019
caaa189
[VirtualFileSystem] Fix uninitialized variable warning. NFCI.
RKSimon May 22, 2019
885db16
[ARM][AArch64] Fix incorrect handling of alignment in va_arg code gen…
john-brawn-arm May 22, 2019
9c06401
DWARF: Add debug_ranges/rnglists tests
labath May 22, 2019
9534d92
Mark tests from r361278 as unsupported on Windows.
rgal May 22, 2019
7b4adc0
[Hexagon] assert getRegisterBitWidth returns non-zero value. NFCI.
RKSimon May 22, 201 10000 9
aa3d779
[Frontend] Return an error on bad inputs to PrecompiledPreabmle
ilya-biryukov May 22, 2019
36b38bf
Revert r361148 "[Syntax] Introduce TokenBuffer, start clangToolingSyn…
rgal May 22, 2019
3c08b7a
Clang-formatting the header in advance of other planned changes; NFC.
AaronBallman May 22, 2019
712283b
[CGOpenMPRuntime] emitX86DeclareSimdFunction - assert simdlen/cdtsize…
RKSimon May 22, 2019
d5eb797
[NFC][SystemZ] Autogenerate alloca-03.ll test to make test changes mo…
LebedevRI May 22, 2019
0b8f36f
UpdateTestChecks: sparc march handling
LebedevRI May 22, 2019
7e04dca
[OpenCL] Support pipe keyword in C++ mode
svenvh May 22, 2019
03548dd
Added a dot at the end of comment
kwk May 22, 2019
d0de44b
[llvm-objcopy] Tidy up error messages
jh7370 May 22, 2019
ea7c3c2
[llvm-exegesis] Move native target initialization code to a separate …
legrosbuffle May 22, 2019
005517a
[AMDGPU][MC] Corrected parsing of op_sel* and neg_* modifiers
dpreobra May 22, 2019
327eab7
LoopVectorizationCostModel::selectInterleaveCount - assert we have a …
RKSimon May 22, 2019
6d13d6c
[clangd] improve help message for limit-results
kadircet May 22, 2019
996035a
gn build: Merge r361377
nico May 22, 2019
7b4c527
[NFC][X86][AArch64] Rewrite sink-addsub-of-const.ll tests to have ful…
LebedevRI May 22, 2019
61d4d2f
Reland r361148 with a fix to the buildbot failure.
ilya-biryukov May 22, 2019
99bc13e
[LibTooling] Update Transformer to use RangeSelector instead of NodeP…
ymand May 22, 2019
fc734fc
[mips] Replace multiple `-check-prefix` by single `-check-prefixes`. NFC
atanasyan May 22, 2019
6f01fc5
[mips] Use GNU-style output to make tests smaller. NFC
atanasyan May 22, 2019
f4cdd66
[llvm-objdump] Dump inline relocations if the relocated section is sp…
MaskRay May 22, 2019
e600d29
[NFC][X86] Autogenerate negative-offset.ll test
LebedevRI May 22, 2019
1ab18ae
[NFC][ARM] Autogenerate addsubcarry-promotion.ll test
LebedevRI May 22, 2019
d533d7b
[NFC][ARM] addsubcarry-promotion.ll: whoops - replace '.' with '-' in…
LebedevRI May 22, 2019
6c72ddb
Unbreak non-PIC builds after r361340/D62174
davezarzycki May 22, 2019
bf4eae5
Combine two if cases because the second one is never reached.
amykhuang May 22, 2019
e09145d
[IR] allow fast-math-flags on select of FP values
rotateright May 22, 2019
d7e9022
llvm-undname: Fix an assert-on-invalid, found by oss-fuzz
nico May 22, 2019
4fc3bc0
[TargetLowering] Add blank line (test commit)
kees May 22, 2019
99c5eb2
[TargetLowering] Extend bool args to inline-asm according to getBoole…
kees May 22, 2019
1acee7b
MC: Allow getMaxInstLength to depend on the subtarget
arsenm May 22, 2019
f393583
AMDGPU: Move disassembler support check to constructor
arsenm May 22, 2019
a88dd3e
[libFuzzer] Ignore synthetic exceptions on Fuchsia
petrhosek May 22, 2019
54264cc
Fixed third issue reported in https://bugs.llvm.org/show_bug.cgi?id=4…
AndreyChurbanov May 22, 2019
e11a570
[NFC][X86][AArch64] Add tests for missing (x - y) + -1 -> not(y) + …
LebedevRI May 22, 2019
df7af04
Disable EHFrameSupport in JITLink/RuntimeDyld on AIX
xingxue-ibm May 22, 2019
25fa2e6
Fixed a -Wunused-variable warning when assertions are disabled
gribozavr May 22, 2019
5f27f3c
[EditLine] Rewrite GetHistoryFilePath
JDevlieghere May 22, 2019
0454b95
[LibTooling] Update Stencil to use RangeSelector
ymand May 22, 2019
a2a4daa
[libcxx][test] Fix order checking in some more unordered_multimap tests
ldionne May 22, 2019
9da7303
[NFC][InstCombine] Add unary fneg tests to maxnum.ll/minnum.ll
mcinally May 22, 2019
1827e09
[PGO][CHR] Speed up following long use-def chains.
hjyamauchi May 22, 2019
2386333
[DebugInfo][AArch64] Recognise target specific instruction as mov instr
avl-llvm May 22, 2019
e1c225a
[clang-tidy] Add support for writing a check as a Transformer rewrite…
ymand May 22, 2019
964e550
gn build: Fix check-clangd target after r359825
nico May 22, 2019
831d569
Add DWARFTypeUnit to the Xcode project.
jimingham May 22, 2019
a9dbfdc
[OPENMP][NVPTX]Fix barriers and parallel level counters, NFC.
alexey-bataev May 22, 2019
dfbebd0
[X86] Add more icelake model numbers to getHostCPUName.
topperc May 22, 2019
a68ec21
[X86] Add more icelake model numbers to compiler-rt implementation of…
topperc May 22, 2019
7de97a8
Part of P1091R3: permit structured bindings to be declared 'static' and
zygoloid May 22, 2019
b0c79d0
[X86][InstCombine] Remove InstCombine code that turns X86 round intri…
topperc May 22, 2019
f09d813
Re-land r361206 "[COFF] Store alignment in log2 form, NFC"
rnk May 22, 2019
695d85a
[asan] Fix debug asan build link error
rnk May 22, 2019
ecf8b87
Modules: Code generation of enum constants for merged enum definitions
dwblaikie May 22, 2019
de1951d
Add back --sysroot support for darwin header search.
jyknight May 22, 2019
a653195
Reverted r361134 because of a failing test left unattended for a long…
gkistanova May 22, 2019
34e727f
[X86] Explcitly disable VEXTRACT instruction matching for an immediat…
topperc May 22, 2019
23b95ce
[runtimes] Move libunwind, libc++abi and libc++ to lib/$target/c++ an…
petrhosek May 22, 2019
52d0dbb
Add some notes on immutability and faithfulness to the internals manual.
zygoloid May 22, 2019
49790fc
TableGen: Handle nontrivial foreach range bounds
arsenm May 22, 2019
6339314
Add a HowToUseLLJIT example project.
lhames May 22, 2019
3ac4f40
[Runtimes] If LLVM_INCLUDE_TESTS=On depend on gtest
llvm-beanz May 22, 2019
a318200
[docs] Make a note of the HowToUseLLJIT example in the ORCv2 design doc.
lhames May 22, 2019
57b53af
Fix new enum-codegen.cpp test
rnk May 22, 2019
67886c1
Fix r361428 for Windows buildbots/mangling
dwblaikie May 22, 2019
24c2ec8
Actaully lock accesses to OptionValueFileSpecList objects
fredriss May 22, 2019
e5cdc9a
[ORC] Remove a stray decl that accidentally found its way in to r361322.
lhames May 22, 2019
0056847
[Target] Protect Processes' language runtimes map with a mutex
bulbazord May 22, 2019
9f87d9a
Expression: correct relocation model for Windows
compnerd May 22, 2019
4230f0b
[lldb] Fix use-of-uninitialized-value in Driver
slackito May 22, 2019
c01e476
FileCheck: Improve FileCheck variable terminology
May 23, 2019
94aa1e3
[FileCheck] Introduce substitution subclasses
May 23, 2019
fa2eca0
Ack, added DWARFTypeUnit to the wrong target...
jimingham May 23, 2019
df93b83
[libFuzzer] automatically collect the data flow trace (DFT) in the fo…
kcc May 23, 2019
6004228
gn build: Merge r361418.
pcc May 23, 2019
69c2739
[llvm-objcopy] Add file names to error messages
nuta May 23, 2019
7a124ba
[ARM64][AArch64] Update disassembler attributes to ARMv8.5 ISA with S…
omjavaid May 23, 2019
42db9a1
[libFuzzer] remove the data-flow-trace (DFT) python scripts; their fu…
kcc May 23, 2019
341175e
[X86] Support -fno-plt __tls_get_addr calls
MaskRay May 23, 2019
515fd69
[WebAssembly] Implement __builtin_return_address for emscripten
tlively May 23, 2019
d0d9779
Remove unused const version of CommandInterpreter::GetCommandHistory.
jimingham May 23, 2019
d047a90
[CMake][Fuchsia] Use cannonical triples for runtimes
petrhosek May 23, 2019
84682ba
Remove unnecessary const&s; NFC
gburgessiv May 23, 2019
815eded
[Utility] Modernize C-style cats
JDevlieghere May 23, 2019
9d78e90
[Reproducer] Pass FileSpec by const-ref. (NFC)
JDevlieghere May 23, 2019
9ad1f8e
[GlobalOpt] recognize dead struct fields and propagate values
May 23, 2019
511aeea
[CodeComplete] Complete a lambda when preferred type is a function
ilya-biryukov May 23, 2019
f15d712
[ARM][CGP] Clear SafeWrap before each search
sparker-arm May 23, 2019
307ada6
Simplify `GetName`+`AppendTypeName` by `DWARFDIE`
jankratochvil May 23, 2019
9a81195
[clangd-vscode] Bump versions dependencies. NFC
ilya-biryukov May 23, 2019
537f92a
Fix for build and LIT failures after sync with LLVM eee5d425c1
MrSidims May 22, 2019
8d4be77
Sync to SPIRV-LLVM-Translator ed1a4f738d43
MrSidims May 23, 2019
a91d722
[SYCL] Fix several errors in accessor
v-klochkov May 22, 2019
a287f9d
[SYCL] Fix conversions in multi_ptr class.
romanovvlad May 23, 2019
40ce2a7
[SYCL] Align get_profiling_info behavior with the specification
romanovvlad May 22, 2019
5334afc
[SYCL] Update scheduler API in event methods
romanovvlad May 22, 2019
ff4e08c
[SYCL][NFC] Capitalize SYCL specification references
bader May 26, 2019
5b4a89e
[SYCL][NFC] Remove dead code
bader May 27, 2019
97590a7
[SYCL] Add support of reqd_sub_group_size attribute to SYCL FE
AlexeySachkov May 20, 2019
cf47697
[SYCL] Rename OpenCLIntelReqdSubGroupSize attribute
AlexeySachkov May 21, 2019
19e6105
[SYCL] Use exclusive queues for blocked commands.
romanovvlad May 16, 2019
537f6df
[SYCL] Set timeout of SYCL LIT tests = 10 mins.
romanovvlad May 21, 2019
109cdc5
[SYCL] Disable event_profiling_info.cpp on host device.
romanovvlad May 27, 2019
cd9de48
[SYCL] Remove re-flower pass from clang
Fznamznon May 24, 2019
7db9ce8
[SYCL] Add aliases to OpenCL event and sampler types for SYCL
Fznamznon May 24, 2019
a5f2fda
[SYCL] Use SPIRV-friendly built-in naming scheme
Fznamznon May 24, 2019
39c82eb
[SYCL] Update SYCL clang tests
Fznamznon May 27, 2019
d9a0dc8
[SYCL] defer kernel diagnostics
premanandrao May 30, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
FileCheck: Improve FileCheck variable terminology
Summary:
Terminology introduced by [[#]] blocks is confusing and does not
integrate well with existing terminology.

First, variables referred by [[]] blocks are called "pattern variables"
while the text a CHECK directive needs to match is called a "CHECK
pattern". This is inconsistent with variables in [[#]] blocks since
[[#]] blocks are also found in CHECK pattern yet those variables are
called "numeric variable".

Second, the replacing of both [[]] and [[#]] blocks by the value of the
variable or expression they contain is represented by a
FileCheckPatternSubstitution class. The naming refers to being a
substitution in a CHECK pattern but could be wrongly understood as being
a substitution of a pattern variable.

Third and lastly, comments use "numeric expression" to refer both to the
[[#]] blocks as well as to the numeric expressions these blocks contain
which get evaluated at match time.

This patch solves these confusions by
- calling variables in [[]] and [[#]] blocks as string and numeric
  variables respectively;
- referring to [[]] and [[#]] as substitution *blocks*, with the former
  being a string substitution block and the latter a numeric
  substitution block;
- calling [[]] and [[#]] blocks to be replaced by the value of a
  variable or expression they contain a substitution (as opposed to
  definition when these blocks are used to defined a variable), with the
  former being a string substitution and the latter a numeric
  substitution;
- renaming the FileCheckPatternSubstitution as a FileCheckSubstitution
  class with FileCheckStringSubstitution and
  FileCheckNumericSubstitution subclasses;
- restricting the use of "numeric expression" to refer to the expression
  that is evaluated in a numeric substitution.

While numeric substitution blocks only support numeric substitutions of
numeric expressions at the moment there are plans to augment numeric
substitution blocks to support numeric definitions as well as both a
numeric definition and numeric substitution in the same numeric
substitution block.

Reviewers: jhenderson, jdenny, probinson, arichardson

Subscribers: hiraditya, arichardson, probinson, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62146

llvm-svn: 361445
  • Loading branch information
Thomas Preud'homme authored and MrSidims committed May 24, 2019
commit c01e4763f37a7ad85a46ea7542b45e94173aa5ce
63 changes: 35 additions & 28 deletions llvm/docs/CommandGuide/FileCheck.rst
Original file line number Diff line number Diff line change
Expand Up @@ -499,8 +499,8 @@ simply uniquely match a single line in the file being verified.

``CHECK-LABEL:`` directives cannot contain variable definitions or uses.

FileCheck Pattern Matching Syntax
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FileCheck Regex Matching Syntax
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

All FileCheck directives take a pattern to match.
For most uses of FileCheck, fixed string matching is perfectly sufficient. For
Expand All @@ -525,14 +525,15 @@ braces like you would in C. In the rare case that you want to match double
braces explicitly from the input, you can use something ugly like
``{{[{][{]}}`` as your pattern.

FileCheck Pattern Expressions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FileCheck String Substitution Blocks
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

It is often useful to match a pattern and then verify that it occurs again
later in the file. For codegen tests, this can be useful to allow any register,
but verify that that register is used consistently later. To do this,
:program:`FileCheck` supports pattern expressions that allow pattern variables
to be defined and substituted into patterns. Here is a simple example:
later in the file. For codegen tests, this can be useful to allow any
register, but verify that that register is used consistently later. To do
this, :program:`FileCheck` supports string substitution blocks that allow
string variables to be defined and substituted into patterns. Here is a simple
example:

.. code-block:: llvm

Expand All @@ -541,15 +542,16 @@ to be defined and substituted into patterns. Here is a simple example:
; CHECK: andw {{.*}}[[REGISTER]]

The first check line matches a regex ``%[a-z]+`` and captures it into the
variable ``REGISTER``. The second line verifies that whatever is in
``REGISTER`` occurs later in the file after an "``andw``". :program:`FileCheck`
variable references are always contained in ``[[ ]]`` pairs, and their names can
be formed with the regex ``[a-zA-Z_][a-zA-Z0-9_]*``. If a colon follows the name,
then it is a definition of the variable; otherwise, it is a use.
string variable ``REGISTER``. The second line verifies that whatever is in
``REGISTER`` occurs later in the file after an "``andw``". :program:`FileCheck`
string substitution blocks are always contained in ``[[ ]]`` pairs, and string
variable names can be formed with the regex ``[a-zA-Z_][a-zA-Z0-9_]*``. If a
colon follows the name, then it is a definition of the variable; otherwise, it
is a substitution.

:program:`FileCheck` variables can be defined multiple times, and uses always
get the latest value. Variables can also be used later on the same line they
were defined on. For example:
:program:`FileCheck` variables can be defined multiple times, and substitutions
always get the latest value. Variables can also be substituted later on the
same line they were defined on. For example:

.. code-block:: llvm

Expand All @@ -565,16 +567,17 @@ CHECK-LABEL block. Global variables are not affected by CHECK-LABEL.
This makes it easier to ensure that individual tests are not affected
by variables set in preceding tests.

FileCheck Numeric Variables and Expressions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FileCheck Numeric Substitution Blocks
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:program:`FileCheck` also allows checking for numeric values that satisfy a
numeric expression constraint based on numeric variables. This allows
``CHECK:`` directives to verify a numeric relation between two numbers, such as
the need for consecutive registers to be used.
:program:`FileCheck` also supports numeric substitution blocks that allow
checking for numeric values that satisfy a numeric expression constraint based
on numeric variables. This allows ``CHECK:`` directives to verify a numeric
relation between two numbers, such as the need for consecutive registers to be
used.

The syntax to check a numeric expression constraint is
``[[#<NUMVAR><op><offset>]]`` where:
The syntax of a numeric substitution block is ``[[#<NUMVAR><op><offset>]]``
where:

* ``<NUMVAR>`` is the name of a numeric variable defined on the command line.

Expand All @@ -585,6 +588,10 @@ The syntax to check a numeric expression constraint is
the numeric operation <op>. It must be present if ``<op>`` is present,
absent otherwise.

Spaces are accepted before, after and between any of these elements.

Unlike string substitution blocks, numeric substitution blocks only introduce
numeric substitutions which substitute a numeric expression for its value.
For example:

.. code-block:: llvm
Expand All @@ -606,7 +613,7 @@ but would not match the line:
due to ``7`` being unequal to ``5 + 1``.

The ``--enable-var-scope`` option has the same effect on numeric variables as
on pattern variables.
on string variables.

FileCheck Pseudo Numeric Variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -632,9 +639,9 @@ relative line number references, for example:
// CHECK-NEXT: {{^ ;}}
int a

To support legacy uses of ``@LINE`` as a special pattern variable,
:program:`FileCheck` also accepts the following uses of ``@LINE`` with pattern
variable syntax: ``[[@LINE]]``, ``[[@LINE+<offset>]]`` and
To support legacy uses of ``@LINE`` as a special string variable,
:program:`FileCheck` also accepts the following uses of ``@LINE`` with string
substitution block syntax: ``[[@LINE]]``, ``[[@LINE+<offset>]]`` and
``[[@LINE-<offset>]]`` without any spaces inside the brackets and where
``offset`` is an integer.

Expand Down
99 changes: 51 additions & 48 deletions llvm/include/llvm/Support/FileCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ struct FileCheckRequest {
};

//===----------------------------------------------------------------------===//
// Numeric expression handling code.
// Numeric substitution handling code.
//===----------------------------------------------------------------------===//

/// Class representing a numeric variable with a given value in a numeric
Expand Down Expand Up @@ -105,55 +105,58 @@ class FileCheckNumExpr {

class FileCheckPatternContext;

/// Class representing a substitution to perform in the string to match.
class FileCheckPatternSubstitution {
private:
/// Pointer to a class instance holding the table with the values of live
/// pattern variables at the start of any given CHECK line. Used for
/// substituting pattern variables (numeric variables have their value in the
/// FileCheckNumExpr class instance pointed to by NumExpr).
/// Class representing a substitution to perform in the RegExStr string.
class FileCheckSu 10000 bstitution {
protected:
/// Pointer to a class instance holding, among other things, the table with
/// the values of live string variables at the start of any given CHECK line.
/// Used for substituting string variables with the text they were defined
/// as. Numeric expressions are linked to the numeric variables they use at
/// parse time and directly access the value of the numeric variable to
/// evaluate their value.
FileCheckPatternContext *Context;

/// Whether this represents a numeric expression substitution.
bool IsNumExpr;
bool IsNumSubst;

/// The string that needs to be substituted for something else. For a
/// pattern variable this is its name, otherwise this is the whole numeric
/// string variable this is its name, otherwise this is the whole numeric
/// expression.
StringRef FromStr;

/// If this is a numeric expression substitution, this is the pointer to the
/// class representing that numeric expression.
/// class representing the numeric expression whose value is to be
/// substituted.
FileCheckNumExpr *NumExpr = nullptr;

// Index in RegExStr of where to do the substitution.
size_t InsertIdx;

public:
/// Constructor for a pattern variable substitution.
FileCheckPatternSubstitution(FileCheckPatternContext *Context,
StringRef VarName, size_t InsertIdx)
: Context(Context), IsNumExpr(false), FromStr(VarName),
FileCheckSubstitution(FileCheckPatternContext *Context,
StringRef VarName, size_t InsertIdx)
: Context(Context), IsNumSubst(false), FromStr(VarName),
InsertIdx(InsertIdx) {}

/// Constructor for a numeric expression substitution.
FileCheckPatternSubstitution(FileCheckPatternContext *Context, StringRef Expr,
FileCheckNumExpr *NumExpr, size_t InsertIdx)
: Context(Context), IsNumExpr(true), FromStr(Expr), NumExpr(NumExpr),
FileCheckSubstitution(FileCheckPatternContext *Context, StringRef Expr,
FileCheckNumExpr *NumExpr, size_t InsertIdx)
: Context(Context), IsNumSubst(true), FromStr(Expr), NumExpr(NumExpr),
InsertIdx(InsertIdx) {}

/// \returns whether this is a numeric expression substitution.
bool isNumExpr() const { return IsNumExpr; }
bool isNumSubst() const { return IsNumSubst; }

/// \returns the string to be substituted.
/// \returns the string to be substituted for something else.
StringRef getFromString() const { return FromStr; }

/// \returns the index where the substitution is to be performed.
/// \returns the index where the substitution is to be performed in RegExStr.
size_t getIndex() const { return InsertIdx; }

/// \returns the result of the substitution represented by this class
/// instance or None if substitution failed. Numeric expressions are
/// substituted by their values. Pattern variables are simply replaced by the
/// substituted by their values. String variables are simply replaced by the
/// text their definition matched.
llvm::Optional<std::string> getResult() const;

Expand Down Expand Up @@ -216,14 +219,14 @@ class FileCheckPatternContext {
friend class FileCheckPattern;

private:
/// When matching a given pattern, this holds the value of all the FileCheck
/// pattern variables defined in previous patterns. In a pattern, only the
/// last definition for a given variable is recorded in this table.
/// When matching a given pattern, this holds the value of all the string
/// variables defined in previous patterns. In a pattern, only the last
/// definition for a given variable is recorded in this table.
/// Back-references are used for uses after any the other definition.
StringMap<StringRef> GlobalVariableTable;

/// Map of all pattern variables defined so far. Used at parse time to detect
/// a name conflict between a numeric variable and a pattern variable when
/// Map of all string variables defined so far. Used at parse time to detect
/// a name conflict between a numeric variable and a string variable when
/// the former is defined on a later line than the latter.
StringMap<bool> DefinedVariableTable;

Expand All @@ -243,19 +246,21 @@ class FileCheckPatternContext {
std::vector<std::unique_ptr<FileCheckNumericVariable>> NumericVariables;

public:
/// \returns the value of pattern variable \p VarName or None if no such
/// \returns the value of string variable \p VarName or None if no such
/// variable has been defined.
llvm::Optional<StringRef> getPatternVarValue(StringRef VarName);
< C95D /td>
/// Defines pattern and numeric variables from definitions given on the
/// Defines string and numeric variables from definitions given on the
/// command line, passed as a vector of [#]VAR=VAL strings in
/// \p CmdlineDefines. Reports any error to \p SM and \returns whether an
/// error occured.
bool defineCmdlineVariables(std::vector<std::string> &CmdlineDefines,
SourceMgr &SM);

/// Undefines local variables (variables whose name does not start with a '$'
/// sign), i.e. removes them from GlobalVariableTable.
/// sign), i.e. removes them from GlobalVariableTable and from
/// GlobalNumericVariableTable and also clears the value of numeric
/// variables.
void clearLocalVars();

private:
Expand All @@ -281,17 +286,15 @@ class FileCheckPattern {
/// a fixed string to match.
std::string RegExStr;

/// Entries in this vector represent uses of a pattern variable or a numeric
/// expression in the pattern that need to be substituted in the regexp
/// pattern at match time, e.g. "foo[[bar]]baz[[#N+1]]". In this case, the
/// Entries in this vector represent a substitution of a string variable or a
/// numeric expression in the RegExStr regex at match time. For example, in
/// the case of a CHECK directive with the pattern "foo[[bar]]baz[[#N+1]]",
/// RegExStr will contain "foobaz" and we'll get two entries in this vector
/// that tells us to insert the value of pattern variable "bar" at offset 3
/// and the value of numeric expression "N+1" at offset 6. Uses are
/// represented by a FileCheckPatternSubstitution class to abstract whether
/// it is a pattern variable or a numeric expression.
std::vector<FileCheckPatternSubstitution> Substitutions;
/// that tells us to insert the value of string variable "bar" at offset 3
/// and the value of numeric expression "N+1" at offset 6.
std::vector<FileCheckSubstitution> Substitutions;

/// Maps names of pattern variables defined in a pattern to the parenthesized
/// Maps names of string variables defined in a pattern to the parenthesized
/// capture numbers of their last definition.
///
/// E.g. for the pattern "foo[[bar:.*]]baz[[bar]]quux[[bar:.*]]",
Expand All @@ -304,9 +307,9 @@ class FileCheckPattern {

/// Pointer to a class instance holding the global state shared by all
/// patterns:
/// - separate tables with the values of live pattern and numeric variables
/// - separate tables with the values of live string and numeric variables
/// respectively at the start of any given CHECK line;
/// - table holding whether a pattern variable has been defined at any given
/// - table holding whether a string variable has been defined at any given
/// point during the parsing phase.
FileCheckPatternContext *Context;

Expand Down Expand Up @@ -335,14 +338,14 @@ class FileCheckPattern {
/// character that is part of the variable name. Otherwise, only
/// \returns true.
static bool parseVariable(StringRef Str, bool &IsPseudo, unsigned &TrailIdx);
/// Parses a numeric expression involving (pseudo if \p IsPseudo is true)
/// Parses a numeric substitution involving (pseudo if \p IsPseudo is true)
/// variable \p Name with the string corresponding to the operation being
/// performed in \p Trailer. \returns the class representing the numeric
/// expression or nullptr if parsing fails in which case errors are reported
/// on \p SM.
FileCheckNumExpr *parseNumericExpression(StringRef Name, bool IsPseudo,
StringRef Trailer,
const SourceMgr &SM) const;
/// expression being substituted or nullptr if parsing fails, in which case
/// errors are reported on \p SM.
FileCheckNumExpr *parseNumericSubstitution(StringRef Name, bool IsPseudo,
StringRef Trailer,
const SourceMgr &SM) const;
/// Parses the pattern in \p PatternStr and initializes this FileCheckPattern
/// instance accordingly.
///
Expand All @@ -361,11 +364,11 @@ class FileCheckPattern {
/// string.
///
/// The GlobalVariableTable StringMap in the FileCheckPatternContext class
/// instance provides the current values of FileCheck pattern variables and
/// instance provides the current values of FileCheck string variables and
/// is updated if this match defines new values.
size_t match(StringRef Buffer, size_t &MatchLen) const;
/// Prints the value of successful substitutions or the name of the undefined
/// pattern or numeric variable preventing such a successful substitution.
/// string or numeric variable preventing a successful substitution.
void printSubstitutions(const SourceMgr &SM, StringRef Buffer,
SMRange MatchRange = None) const;
void printFuzzyMatch(const SourceMgr &SM, StringRef Buffer,
Expand Down
Loading
0