Skip to content

Merge branch 'amd-master' into 'amd-common' #48

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

Merged
merged 327 commits into from
Dec 21, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
327 commits
Select commit Hold shift + click to select a range
768d266
[CostModel][X86] Add tests for reverse shuffle costs
RKSimon Dec 15, 2016
74a7d89
[AVR] Support floats in the instrumention pass
Dec 15, 2016
158d97d
[Power9] Allow AnyExt immediates for XXSPLTIB
nemanjai Dec 15, 2016
9086e00
[TESTS] Initial commit of tests, by Andrew Tischenko
alexey-bataev Dec 15, 2016
1e5c5ee
[CostModel] Fix long standing bug with reverse shuffle mask detection
RKSimon Dec 15, 2016
7b626df
[InstCombine] New opportunities for FoldAndOfICmp and FoldXorOfICmp
Dec 15, 2016
be2adce
Revert "[TESTS] Initial commit of tests, by Andrew Tischenko"
alexey-bataev Dec 15, 2016
152f85e
[TEST] Initial commit of tests for minmax horizontal reductions.
alexey-bataev Dec 15, 2016
255071b
[CostModel][X86] Updated reverse shuffle costs
RKSimon Dec 15, 2016
d6ca3f0
Extract LaneBitmask into a separate type
Dec 15, 2016
82c3914
Fix for regression after Global Load Scalarization patch
alex-t Dec 15, 2016
a533d6c
[X86][SSE] Fix domains for VZEXT_LOAD type instructions
RKSimon Dec 15, 2016
65440dd
Fix ubsan failures in lane mask shifts
Dec 15, 2016
9fc6de7
[SimplifyCFG] In sinkLastInstruction correctly set debugloc of "commo…
Dec 15, 2016
fb4f51e
[X86][AVX512] Moved instruction domain lookups to the right table. NFCI.
RKSimon Dec 15, 2016
de36587
[lanai] Simplify small section check in LowerGlobalAddress and treat …
jpienaar Dec 15, 2016
bdaef54
Revert "[SimplifyCFG] In sinkLastInstruction correctly set debugloc o…
Dec 15, 2016
6677747
[X86][SSE] Fix domains for scalar store instructions
RKSimon Dec 15, 2016
b10a96e
[x86] use a single shufps when it can save instructions
rotateright Dec 15, 2016
69a678c
[CMake] Minor change to symlink generation for LLDB
Dec 15, 2016
260d27c
[ThinLTO] Ensure callees get hot threshold when first seen on cold path
teresajohnson Dec 15, 2016
13061e3
[AArch64][GlobalISel] Remove redundant RBI comments. NFC.
ahmedbougacha Dec 15, 2016
ad1bdf6
[AArch64] Guard Misaligned 128-bit store penalty by subtarget feature
mssimpso Dec 15, 2016
b782ce7
[x86] use a single shufps for 256-bit vectors when it can save instru…
rotateright Dec 15, 2016
d834e08
[GlobalISel] Drop workaround for Legalizer member/class sharing a nam…
ahmedbougacha Dec 15, 2016
94ab0f2
[libFuzzer] doc update
kcc Dec 15, 2016
18e2348
[StringRef] Add enable-if to StringLiteral.
Dec 15, 2016
36850aa
Fix some remaining documentation references to MSVC 2013
rnk Dec 15, 2016
8ca87b1
[InstCombine] add folds for icmp (smin X, Y), X
rotateright Dec 15, 2016
3ed425b
Ignore -Wgcc-compat diagnostic in StringLiteral.
Dec 15, 2016
0eeb59d
BrainF example: fixing segfault caused by outdated code with missing …
BorisUlasevich Dec 15, 2016
3e57787
Re-add the check for __has_attribute in StringLiteral.
Dec 15, 2016
fa552fc
LibDriver: Allow resource files to be archive members.
pcc Dec 15, 2016
f192c5d
[LiveRangeEdit] Change eliminateDeadDef assert to if condition.
geoffberry Dec 15, 2016
84ecaa6
[SimplifyCFG] Merge debug locations when hoisting an instruction from…
adibiagio Dec 15, 2016
f977c2b
[LV] Enable vectorization of loops with conditional stores by default
mssimpso Dec 15, 2016
31f8665
AMDGPU: Assembler support for vintrp instructions
arsenm Dec 15, 2016
de94ece
[ThinLTO] Thin link efficiency: skip candidate added later with highe…
teresajohnson Dec 15, 2016
56f1e4a
AMDGPU: Fix asserting on returned tail calls
arsenm Dec 15, 2016
9ee618f
[PPC] Use CHECK-DAG instead of CHECK in the testcase
Dec 15, 2016
70b49e6
[ThinLTO] Remove stale comment (NFC)
teresajohnson Dec 15, 2016
8cf1000
[Verifier] Allow TBAA metadata on atomicrmw and atomiccmpxchg
sanjoy Dec 15, 2016
259f5fb
Don't combine a shuffle of two BUILD_VECTORs with duplicate elements.
Dec 15, 2016
6a48d2e
[ThinLTO] Revert part of r289843 that belonged to another patch.
teresajohnson Dec 15, 2016
97e2734
[gold] Add datalayout to test where it was missing
teresajohnson Dec 15, 2016
0b698fe
AMDGPU: Select branch on undef to uniform scc branch
arsenm Dec 15, 2016
e012a3d
Fix R_AARCH64_MOVW_UABS_G3 relocation
yuyichao Dec 15, 2016
986e672
Don't combine splats with other shuffles.
Dec 15, 2016
30983dc
[SimplifyLibCalls] Remove redundant folding logic for ffs().
dcci Dec 15, 2016
ae8181c
DebugInfo: Emit ranges for functions with DISubprograms but lacking l…
dwblaikie Dec 15, 2016
e886ddf
[IRTranslator] Merge the entry and ABI lowering blocks.
Dec 15, 2016
ce7273e
DebugInfo: Address non-deterministic output (iterating a SmallPtrSet)…
dwblaikie Dec 15, 2016
e5d2103
DebugInfo: Make a Generic test case actually generic (remove datalayo…
dwblaikie Dec 15, 2016
d956fc2
[SimplifyLibCalls] Lower fls() to llvm.ctlz().
dcci Dec 15, 2016
7a05aeb
[SimplifyLibCalls] Add a test to make sure we lower fls(0) correctly.
dcci Dec 15, 2016
731ad19
[ThinLTO] Thin link efficiency improvement: don't re-export globals (…
teresajohnson Dec 15, 2016
339deb4
[AArch64] Add FeatureSlowMisaligned128Store to Exynos M1 and M2
Dec 16, 2016
d150401
IPO: Introduce ThinLTOBitcodeWriter pass.
pcc Dec 16, 2016
c062129
[PPC] corrections in two testcases
Dec 16, 2016
1b11b07
[IR] Remove the DIExpression field from DIGlobalVariable.
adrian-prantl Dec 16, 2016
61009a6
Add missing library dep.
pcc Dec 16, 2016
1254a59
[APFloatTest] Log when test fails. NFC
timshen91 Dec 16, 2016
7766e56
Revert "[IR] Remove the DIExpression field from DIGlobalVariable."
adrian-prantl Dec 16, 2016
1a58ec0
[Hexagon] Fix some Clang-tidy modernize and Include What You Use warn…
EugeneZelenko Dec 16, 2016
236ad05
[SimplifyLibCalls] Use a lambda. NFCI.
dcci Dec 16, 2016
26fa756
Revert patch series introducing the DAG combine to match a load-by-bytes
chandlerc Dec 16, 2016
a0c7208
Add extra headers that got deleted by my revert in r289916 but for which
chandlerc Dec 16, 2016
3b4ecf6
[ThinLTO] Thin link efficiency: More efficient export list computation
teresajohnson Dec 16, 2016
eb38a2a
[IR] Remove the DIExpression field from DIGlobalVariable.
adrian-prantl Dec 16, 2016
56bffdd
Revert 279703, it caused PR31404.
nico Dec 16, 2016
0af2d58
Merge branch 'amd-master' into 'amd-common'
kzhuravl Dec 16, 2016
cfd56f5
Update .debug_line section version information to match DWARF version.
Dec 16, 2016
bd86de4
attempt to fix windows build
nico Dec 16, 2016
6ec5819
[AMDGPU] Remove the AssumptionCache from the AMDGPUPrintfRuntimeBindi…
kzhuravl Dec 16, 2016
5d882e8
Extract a TBAAVerifier out of the verifier (NFC)
joker-eph Dec 16, 2016
e87e706
Revert r289638: [PowerPC] Fix logic dealing with nop after calls (and…
chandlerc Dec 16, 2016
24cf75e
Extra coverage tests to demonstrate fixes in D72618 and D26855
avt77 Dec 16, 2016
c82e7ec
[ARM] Expose methods to get the CCAssignFn. NFCI
rovka Dec 16, 2016
f295c8c
[codegen] Add generic functions to skip debug values.
fhahn Dec 16, 2016
04bc9fb
Revert r289863: [LV] Enable vectorization of loops with conditional
chandlerc Dec 16, 2016
df654b6
[AVR] Add a test for 64-bit left shifts
Dec 16, 2016
d7f6e8f
[X86][SSE] Combine shuffles to MOVSS/MOVSD whatever the domain.
RKSimon Dec 16, 2016
b1879fb
[ARM] GlobalISel: Select add i32, i32
rovka Dec 16, 2016
df71b60
[GlobalISel] Silence unused variable warnings in Release builds.
d0k Dec 16, 2016
878b057
Move VerifierSupport into namespace llvm.
djasper-gh Dec 16, 2016
c27f000
[MIRParser] Add parsing hex literals of arbitrary size as unsigned in…
Dec 16, 2016
228c3ca
Speculatively revert r289925, see PR31407
nico Dec 16, 2016
1c6ca04
[X86][AVX512] Add tests showing missed opportunity to efficiently low…
RKSimon Dec 16, 2016
31fc134
[X86][AVX512] use a single shufps for 512-bit vectors when it can sav…
RKSimon Dec 16, 2016
dbbc9e9
[X86][AVX] Call lowerVectorShuffleWithSHUFPS directly instead of call…
RKSimon Dec 16, 2016
6db0eaf
[CodeGenPrep] Skip merging empty case blocks
Dec 16, 2016
b50f7b9
dwarfdump: Support/process relocations on a CU's abbrev_off
dwblaikie Dec 16, 2016
1c91fb4
[X86] Fold (setcc (cmp (atomic_load_add x, -C) C), COND) to (setcc (L…
zmodem Dec 16, 2016
7e43600
Pass sample pgo flags to thinlto.
danielcdh Dec 16, 2016
48a6409
[LV] Don't attempt to type-shrink scalarized instructions
mssimpso Dec 16, 2016
f250e34
[InstCombine] auto-generate checks; NFC
rotateright Dec 16, 2016
51900e4
Revert "[CodeGenPrep] Skip merging empty case blocks"
Dec 16, 2016
c091dee
Revert "dwarfdump: Support/process relocations on a CU's abbrev_off"
dwblaikie Dec 16, 2016
17bc73a
Fix -Wself-assign from r289955
zmodem Dec 16, 2016
1c5866f
[libFuzzer] Update tests to use more general functions instead of pos…
Dec 16, 2016
37ea43a
[libFuzzer] Remove unnecessary includes of posix headers.
Dec 16, 2016
4682af7
[libFuzzer] Fix index error in SearchMemory() implementation for Wind…
Dec 16, 2016
af63556
AMDGPU: Fix name for v_ashrrev_i16
arsenm Dec 16, 2016
a07f276
Fix name typo in SelectonDAG
joelkevinjones Dec 16, 2016
5976845
[ARM] Add ARMISD::VLD1DUP to match vld1_dup more consistently.
Dec 16, 2016
83c8485
Fix CodeGenPrepare::stripInvariantGroupMetadata
sanjoy Dec 16, 2016
308c60d
Implement LaneBitmask::any(), use it to replace !none(), NFCI
Dec 16, 2016
3499b6e
Reapply "[LV] Enable vectorization of loops with conditional stores b…
mssimpso Dec 16, 2016
4bdcc32
GDB pretty printer for llvm::Optional
dwblaikie Dec 16, 2016
ce07e02
Strip invalid TBAA when reading bitcode
joker-eph Dec 16, 2016
b6ef4f6
[CodeView] Hook CodeViewRecordIO for reading/writing symbols.
Dec 16, 2016
fa4c53e
Fix comment on the verifier (typo + doxygen) (NFC)
joker-eph Dec 16, 2016
56bfe96
Revert "[CodeView] Hook CodeViewRecordIO for reading/writing symbols."
Dec 16, 2016
096faa9
Revert "[IR] Remove the DIExpression field from DIGlobalVariable."
adrian-prantl Dec 16, 2016
0499c46
Inline stripInvariantGroupMetadata out of existence
sanjoy Dec 16, 2016
4d9c93d
[CodeGenPrep] Skip merging empty case blocks
Dec 16, 2016
569cd21
Preserve loop metadata when folding branches to a common destination.
mkuperst Dec 16, 2016
f638013
[ThinLTO] Import composite types as declarations
teresajohnson Dec 16, 2016
eb30028
[libFuzzer] add an experimental flag -experimental_len_control=1 that…
kcc Dec 16, 2016
c7ab3c7
[libFuzzer] avoid msan false positives in more cases
kcc Dec 16, 2016
3b75dc7
Resubmit "[CodeView] Hook CodeViewRecordIO for reading/writing symbols."
Dec 16, 2016
398ecdf
Fix a bugs with using some Mach-O command line flags like "-arch armv…
enderby Dec 16, 2016
95a614c
ModuleSummaryAnalysis: Remove some duplicate code. NFCI.
pcc Dec 16, 2016
980f5c5
GDB pretty printers: Basic DenseMap support
dwblaikie Dec 16, 2016
c8eb7f3
Allow "line 0" to be the first explicit debug location in a function.
pogo59 Dec 16, 2016
fe82f4a
BranchRelaxation: Recompute live-ins when splitting a block
MatzeB Dec 16, 2016
5a5039a
AArch64: Enable post-ra liveness updates
MatzeB Dec 16, 2016
67f0925
[ORC][RPC] Use more meaningful template parameter names.
lhames Dec 17, 2016
9d419ab
[BPI] Use a safer constructor to calculate branch probabilities
vedantk Dec 17, 2016
7797297
[sancov] skip dead files from computations
aizatsky-chromium Dec 17, 2016
48d47ae
[libfuzzer] removing experimental FuzzerFnAdapter
aizatsky-chromium Dec 17, 2016
a908bba
Revert "[BPI] Use a safer constructor to calculate branch probabilities"
vedantk Dec 17, 2016
d69dfb1
Add support for formatv to llvm::Twine.
Dec 17, 2016
8739616
Delete unused file.
Dec 17, 2016
318da23
Retry: [BPI] Use a safer constructor to calculate branch probabilities
vedantk Dec 17, 2016
d24b18f
[Hexagon] Fix some Clang-tidy modernize and Include What You Use warn…
EugeneZelenko Dec 17, 2016
d5a8735
AArch64CollectLOH: Rewrite as block-local analysis.
MatzeB Dec 17, 2016
2fc0cc3
[Hexagon] Fix build with enabled asserts broken in 290024 (NFC).
EugeneZelenko Dec 17, 2016
c961a1d
[Hexagon] Other attempt to fix build with enabled asserts broken in 2…
EugeneZelenko Dec 17, 2016
af2bc9b
Fix compilation.
eugenis Dec 17, 2016
0fe2106
Revert "[GVNHoist] Move GVNHoist to function simplification part of p…
eugenis Dec 17, 2016
fdff3a8
[libFuzzer] when tracing switch statements, handle only one case at a…
kcc Dec 17, 2016
2d747dd
Move test to correct directory
MatzeB Dec 17, 2016
99cbf23
[libFuzzer] remove stale test
kcc Dec 17, 2016
dbf2883
[libFuzzer] speed up __sanitizer_cov_trace_switch a bit more (remove …
kcc Dec 17, 2016
67cf225
ADT: Add a getArrayRef() accessor to MapVector.
pcc Dec 17, 2016
be186ac
Add custom type for PseudoSourceValue
tstellarAMD Dec 17, 2016
cc82ac2
[libFuzzer] use less memory for merge
kcc Dec 17, 2016
4a6e931
[DWARF] - Introduce DWARFDebugPubTable class for dumping pub* sections.
Dec 17, 2016
ffeebac
[DWARF] - Make PubIndexEntryDescriptor::toBits() to be const.
Dec 17, 2016
a21e8a0
Revert "[libFuzzer] add an experimental flag -experimental_len_contro…
djasper-gh Dec 17, 2016
0f5f69a
[InstCombine] Simplify code slightly. NFC
topperc Dec 17, 2016
9e6cedb
Revert "AArch64CollectLOH: Rewrite as block-local analysis."
MatzeB Dec 17, 2016
9f7b68d
[AVX-512] Update scalar logic test to show missed opportunity to use …
topperc Dec 17, 2016
226ab62
[AVX-512] Use EVEX encoded logic operations for scalar types when the…
topperc Dec 17, 2016
0f11f29
AMDGPU: Fix broken check prefix in test
arsenm Dec 17, 2016
9b671f3
[PDB] Validate superblock addresses
majnemer Dec 18, 2016
3ce578a
[PDB] Don't reimplement CRC32
majnemer Dec 18, 2016
cbfbeee
[AVX-512] Make sure VLX is also enabled before using EVEX encoded log…
topperc Dec 18, 2016
f28829d
[AVX-512] Use EVEX encoded XOR instruction for zeroing scalar registe…
topperc Dec 18, 2016
abfa815
[X86][SSE][AVX-512] Convert FAND/FOR/FXOR/FANDN nodes to integer oper…
topperc Dec 18, 2016
9cbd609
[FileCheck] Fix comment in ReadCheckFile
Dec 18, 2016
06557aa
[X86][SSE] Add support for combining target shuffles to SHUFPS.
RKSimon Dec 18, 2016
1a2b5e0
[X86] [AVX512] Minor fix in encoding of scalar EVEX instructions. NFC.
michaelz-eng Dec 18, 2016
43d95ab
Revert r289955 and r289962. This is causing lots of ASAN failures for…
djasper-gh Dec 18, 2016
6fd764e
[InstCombine] use commutative matchers for patterns with commutative …
rotateright Dec 18, 2016
bd807b7
[PDB] Don't use the long type
majnemer Dec 18, 2016
8d31c8a
[FileCheck] Fix --strict-whitespace --match-full-lines
Dec 18, 2016
717d868
[FileCheck] Fix --strict-whitespace --match-full-lines -- add test-case
Dec 18, 2016
1caa820
[X86] Remove all of the patterns that use X86ISD:FAND/FXOR/FOR/FANDN …
topperc Dec 19, 2016
5f8b37a
Merge branch 'amd-common' of https://github.com/RadeonOpenCompute/llv…
kzhuravl Dec 19, 2016
83d11f8
Merge branch 'amd-master' into 'amd-common'
kzhuravl Dec 19, 2016
8de3a54
Revert @llvm.assume with operator bundles (r289755-r289757)
djasper-gh Dec 19, 2016
47d6abc
Add files I seem to have dropped in my revert (r290086).
djasper-gh Dec 19, 2016
7e2d9b0
[TableGen] Use 'unsigned' instead of 'bool' in a place where the code…
topperc Dec 19, 2016
5d0801a
[X86] When recognizing vector loads or VZEXT_LOAD in selectScalarSSEL…
topperc Dec 19, 2016
62e99e1
[XRay] Fix assertion failure on empty machine basic blocks (PR 31424)
deanberris Dec 19, 2016
0fd1a2c
[CodeGen] Make MachineInstr::isIdenticalTo() symmetric.
bjope Dec 19, 2016
abc24ac
[ARM] GlobalISel: Support loading from the stack
rovka Dec 19, 2016
a8a1767
AMDGPU: [AMDGPU] Assembler: add .hsa_code_object_metadata directive f…
samkolton Dec 19, 2016
9950c0f
[ARM] GlobalISel: Lower more than 4 arguments
rovka Dec 19, 2016
00ab587
[Hexagon] Restore minimum profit check accidentally changed in r290024
pepsiman Dec 19, 2016
9d30ef9
[Power9] Processor Model for Scheduling
Dec 19, 2016
f2838d8
[ARM] GlobalISel: Select i8 and i16 copies
rovka Dec 19, 2016
07b3834
[ARM] GlobalISel: Allow i8 and i16 adds
rovka Dec 19, 2016
ce4dc1f
[ARM] GlobalISel: Lower i8 and i16 register args
rovka Dec 19, 2016
af01848
[ARM] GlobalISel: Minor style fixup in test
rovka Dec 19, 2016
7678e12
[ARM] GlobalISel: Add more checks to test
rovka Dec 19, 2016
d687895
Silence unused warning.
djasper-gh Dec 19, 2016
21b74be
[InstCombine] add folds for icmp (smax X, Y), X
rotateright Dec 19, 2016
76d41d2
[AMDGPU] When unifying metadata, add operands to named metadata indiv…
kzhuravl Dec 19, 2016
c8f0c86
[LoopVersioning] Require loop-simplify form for loop versioning.
fhahn Dec 19, 2016
63e1cbe
[InstCombine] add folds for icmp (umin|umax X, Y), X
rotateright Dec 19, 2016
1fd371a
[InstCombine] use commutative matcher for pattern with commutative op…
rotateright Dec 19, 2016
655737a
Make a function to correctly extract the DW_AT_high_pc given the low …
Dec 19, 2016
eaf3712
[TargetInstrInfo] replace redundant expression in getMemOpBaseRegImmOfs
mdlemay Dec 19, 2016
cb3c8b3
Merge branch 'amd-common' of https://github.com/RadeonOpenCompute/llv…
kzhuravl Dec 19, 2016
d576930
[libfuzzer] dump_coverage command line flag
aizatsky-chromium Dec 19, 2016
c2813d9
[ObjectYAML] Support for DWARF Pub Sections
Dec 19, 2016
ab621d8
[LV] Sink tripcount query to where it's actually used. NFC.
mkuperst Dec 19, 2016
97cbb36
Add ARM support to update_llc_test_checks.py
Dec 19, 2016
eca8f9a
[ObjectYAML] Support for DWARF debug_info section
Dec 20, 2016
23755c9
Revert "[ObjectYAML] Support for DWARF debug_info section"
Dec 20, 2016
7b500b4
[IR] Remove the DIExpression field from DIGlobalVariable.
adrian-prantl Dec 20, 2016
c84e30c
Reapply r289926: attempt to fix windows build
adrian-prantl Dec 20, 2016
54cffa1
[PM] Provide an initial, minimal port of the inliner to the new pass …
chandlerc Dec 20, 2016
1c4b812
[PM] Rework a loop in the CGSCC update logic to be more conservative and
chandlerc Dec 20, 2016
ab968f6
Remove extraneous space.
rui314 Dec 20, 2016
7f580b6
Fix build with expensive checks enabled
spavloff Dec 20, 2016
fa24cdc
Merge branch 'amd-master' into 'amd-common'
kzhuravl Dec 20, 2016
11d071b
AMDGPU/SI: Add a MachineMemOperand to MIMG instructions
tstellarAMD Dec 20, 2016
5624de7
[X86][SSE] Ensure we're only combining shuffles with legal mask types.
RKSimon Dec 20, 2016
38206ae
AMDGPU/SI: Add a MachineMemOperand when lowering llvm.amdgcn.buffer.l…
tstellarAMD Dec 20, 2016
f51b34f
AMDGPU/SI: Make a function const
tstellarAMD Dec 20, 2016
bf89173
Add some brief documentation about GDB pretty printers
dwblaikie Dec 20, 2016
b0d6793
Fix missing '>' in docs (hopefully fixes bot error... )
dwblaikie Dec 20, 2016
dba6141
Re-add the assert to StringRef's const char *, length constructor.
Dec 20, 2016
33ae526
Revert "Re-add the assert to StringRef's const char *, length constru…
Dec 20, 2016
8a2cde8
Replace std::find_if with llvm::find_if. NFC.
gburgessiv Dec 20, 2016
44e5760
AMDGPU: Don't add same instruction multiple times to worklist
arsenm Dec 20, 2016
4bcae75
AMDGPU: Run fp combine tests on VI
arsenm Dec 20, 2016
256f801
AMDGPU: Allow 16-bit types in inline asm constraints
arsenm Dec 20, 2016
96a2ab4
Use MaxDepth instead of repeating its value
arsenm Dec 20, 2016
967c9cb
[ARM] Generate checks for shuffle tests using update_llc_test_checks.py.
Dec 20, 2016
1e77c70
[ARM] Implement isExtractSubvectorCheap.
Dec 20, 2016
036647c
[LoopUnroll] Modify a comment to clarify the usage of TripCount. NFC.
Dec 20, 2016
36fc3f6
IR: Eliminate non-determinism in the module summary analysis.
pcc Dec 20, 2016
0ef22e2
[ObjectYAML] Support for DWARF debug_info section
Dec 20, 2016
4138b67
Revert "[ObjectYAML] Support for DWARF debug_info section"
Dec 20, 2016
2f33273
[SCEV] Be less conservative when extending bitwidths for computing ra…
Dec 20, 2016
ca7371d
Move GlobPattern class from LLD to llvm/Support.
rui314 Dec 20, 2016
1ced44b
[Analysis] Centralize objectsize lowering logic.
gburgessiv Dec 20, 2016
8317950
IPO: Remove the ModuleSummary argument to the FunctionImport pass. NFCI.
pcc Dec 21, 2016
389d8df
[Orc] Add some static-assert checks to improve the error messages for…
lhames Dec 21, 2016
a7e8ae4
Improve natvis for llvm::SmallString so that it correctly displays on…
amaiorano Dec 21, 2016
07fe2b0
[Orc][RPC] Specialize RPCTypeName and SerializationTraits in the righ…
lhames Dec 21, 2016
0ed0bfd
machine combiner: fix pretty printer
sebpop Dec 21, 2016
1a6ed84
[Orc][RPC] Actually specialize SerializationTraits and RPCTypeName in…
lhames Dec 21, 2016
4005917
[APFloat] Remove 'else' after return. NFC
timshen91 Dec 21, 2016
5f9dad7
remove pretty-print test that requires debug
sebpop Dec 21, 2016
0e3e0fb
[LDist] Match behavior between invoking via optimization pipeline or …
anemet Dec 21, 2016
7327d6f
[X86] Vectorcall Calling Convention - Adding CodeGen Complete Support
Dec 21, 2016
c934c63
[X86] Vectorcall Calling Convention - Adding CodeGen Complete Support
Dec 21, 2016
92d5336
[X86] Vectorcall Calling Convention - Adding CodeGen Complete Support
Dec 21, 2016
7cd6c62
[X86] Vectorcall Calling Convention - Adding CodeGen Complete Support
Dec 21, 2016
0a9fce6
[AMDGPU] Garbage collect dead code. NFCI.
dcci Dec 21, 2016
b4e27a0
Added a template for building target specific memory node in DAG.
Dec 21, 2016
3c3803e
First commit adding new line to X86.h
michaelz-eng Dec 21, 2016
2f4b616
revert first commit . removing empty line in X86.h
michaelz-eng Dec 21, 2016
e140613
Merge branch 'amd-master' into 'amd-common'
kzhuravl Dec 21, 2016
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
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions bindings/go/llvm/DIBuilderBindings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(LLVMDIBuilderRef Dref,
int Optimized, const char *Flags,
unsigned RuntimeVersion) {
DIBuilder *D = unwrap(Dref);
return wrap(D->createCompileUnit(Lang, File, Dir, Producer, Optimized, Flags,
RuntimeVersion));
return wrap(D->createCompileUnit(Lang, D->createFile(File, Dir), Producer,
Optimized, Flags, RuntimeVersion));
}

LLVMMetadataRef LLVMDIBuilderCreateFile(LLVMDIBuilderRef Dref, const char *File,
Expand Down
9 changes: 7 additions & 2 deletions cmake/modules/AddLLVM.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1290,6 +1290,8 @@ endfunction()

function(add_llvm_tool_symlink link_name target)
cmake_parse_arguments(ARG "ALWAYS_GENERATE" "OUTPUT_DIR" "" ${ARGN})
set(dest_binary "$<TARGET_FILE:${target}>")

# This got a bit gross... For multi-configuration generators the target
# properties return the resolved value of the string, not the build system
# expression. To reconstruct the platform-agnostic path we have to do some
Expand All @@ -1298,6 +1300,11 @@ function(add_llvm_tool_symlink link_name target)
# and replace it with CMAKE_CFG_INTDIR. This allows the build step to be type
# agnostic again.
if(NOT ARG_OUTPUT_DIR)
# If you're not overriding the OUTPUT_DIR, we can make the link relative in
# the same directory.
if(UNIX)
set(dest_binary "$<TARGET_FILE_NAME:${target}>")
endif()
if(CMAKE_CONFIGURATION_TYPES)
list(GET CMAKE_CONFIGURATION_TYPES 0 first_type)
string(TOUPPER ${first_type} first_type_upper)
Expand All @@ -1323,10 +1330,8 @@ function(add_llvm_tool_symlink link_name target)

if(UNIX)
set(LLVM_LINK_OR_COPY create_symlink)
set(dest_binary "$<TARGET_FILE_NAME:${target}>")
else()
set(LLVM_LINK_OR_COPY copy)
set(dest_binary "$<TARGET_FILE:${target}>")
endif()

set(output_path "${ARG_OUTPUT_DIR}/${link_name}${CMAKE_EXECUTABLE_SUFFIX}")
Expand Down
14 changes: 7 additions & 7 deletions cmake/modules/CheckCompilerVersion.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Check if the host compiler is new enough. LLVM requires at least GCC 4.8,
# MSVC 2013, or Clang 3.1.
# MSVC 2015 (Update 3), or Clang 3.1.

include(CheckCXXSourceCompiles)

Expand All @@ -17,8 +17,8 @@ if(NOT DEFINED LLVM_COMPILER_CHECKED)
endif()

if (CMAKE_CXX_SIMULATE_ID MATCHES "MSVC")
if (CMAKE_CXX_SIMULATE_VERSION VERSION_LESS 18.0)
message(FATAL_ERROR "Host Clang must have at least -fms-compatibility-version=18.0")
if (CMAKE_CXX_SIMULATE_VERSION VERSION_LESS 19.0)
message(FATAL_ERROR "Host Clang must have at least -fms-compatibility-version=19.0")
endif()
set(CLANG_CL 1)
elseif(NOT LLVM_ENABLE_LIBCXX)
Expand All @@ -41,10 +41,10 @@ int main() { return (float)x; }"
set(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
endif()
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0)
message(FATAL_ERROR "Host Visual Studio must be at least 2013")
elseif(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.31101)
message(WARNING "Host Visual Studio should at least be 2013 Update 4 (MSVC 18.0.31101)"
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0)
message(FATAL_ERROR "Host Visual Studio must be at least 2015")
elseif(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.00.24215.1)
message(WARNING "Host Visual Studio should at least be 2015 Update 3 (MSVC 19.00.24215.1)"
" due to miscompiles from earlier versions")
endif()
endif()
Expand Down
5 changes: 2 additions & 3 deletions docs/CodingStandards.rst
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,8 @@ unlikely to be supported by our host compilers.
* Delegating constructors: N1986_
* Default member initializers (non-static data member initializers): N2756_

* Only use these for scalar members that would otherwise be left
uninitialized. Non-scalar members generally have appropriate default
constructors.
* Feel free to use these wherever they make sense and where the `=`
syntax is allowed. Don't use braced initialization syntax.

.. _N2118: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html
.. _N2439: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm
Expand Down
2 changes: 1 addition & 1 deletion docs/GettingStarted.rst
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ our build systems:

* Clang 3.1
* GCC 4.8
* Visual Studio 2015
* Visual Studio 2015 (Update 3)

Anything older than these toolchains *may* work, but will require forcing the
build system with a special option and is not really a supported host platform.
Expand Down
3 changes: 0 additions & 3 deletions docs/LibFuzzer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -341,9 +341,6 @@ possible event codes are:
``DONE``
The fuzzer has completed operation because it has reached the specified
iteration limit (``-runs``) or time limit (``-max_total_time``).
``MIN<n>``
The fuzzer is minimizing the combination of input corpus directories into
a single unified corpus (due to the ``-merge`` command line option).
``RELOAD``
The fuzzer is performing a periodic reload of inputs from the corpus
directory; this allows it to discover any inputs discovered by other
Expand Down
32 changes: 23 additions & 9 deletions docs/ProgrammersManual.rst
Original file line number Diff line number Diff line change
Expand Up @@ -331,16 +331,15 @@ There are two ways to customize the formatting behavior for a type.
to extend the mechanism for formatting a type that the library already knows how to
format. For that, we need something else.

2. Provide a **format adapter** with a non-static format method.
2. Provide a **format adapter** inheriting from ``llvm::FormatAdapter<T>``.

.. code-block:: c++

namespace anything {
struct format_int_custom {
int N;
explicit format_int_custom(int N) : N(N) {}
void format(llvm::raw_ostream &Stream, StringRef Style) {
// Do whatever is necessary to format ``N`` into ``Stream``
struct format_int_custom : public llvm::FormatAdapter<int> {
explicit format_int_custom(int N) : llvm::FormatAdapter<int>(N) {}
void format(llvm::raw_ostream &Stream, StringRef Style) override {
// Do whatever is necessary to format ``this->Item`` into ``Stream``
}
};
}
Expand All @@ -350,9 +349,8 @@ There are two ways to customize the formatting behavior for a type.
}
}

If the search for a specialization of ``format_provider<T>`` for the given type
fails, ``formatv`` will subsequently check the argument for an instance method
named ``format`` with the signature described above. If so, it will call the
If the type is detected to be derived from ``FormatAdapter<T>``, ``formatv``
will call the
``format`` method on the argument passing in the specified style. This allows
one to provide custom formatting of any type, including one which already has
a builtin format provider.
Expand Down Expand Up @@ -2196,6 +2194,22 @@ reverse) is O(1) worst case. Testing and setting bits within 128 bits (depends
on size) of the current bit is also O(1). As a general statement,
testing/setting bits in a SparseBitVector is O(distance away from last set bit).

.. _debugging:

Debugging
=========

A handful of `GDB pretty printers
<https://sourceware.org/gdb/onlinedocs/gdb/Pretty-Printing.html>`__ are
provided for some of the core LLVM libraries. To use them, execute the
following (or add it to your ``~/.gdbinit``)::

source /path/to/llvm/src/utils/gdb-scripts/prettyprinters.py

It also might be handy to enable the `print pretty
<http://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_57.html>`__ option to
avoid data structures being printed as a big block of text.

.. _common:

Helpful Hints for Common Operations
Expand Down
6 changes: 6 additions & 0 deletions examples/BrainF/BrainFDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "llvm/Bitcode/BitcodeWriter.h"
#include "llvm/ExecutionEngine/ExecutionEngine.h"
#include "llvm/ExecutionEngine/GenericValue.h"
#include "llvm/ExecutionEngine/MCJIT.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
Expand Down Expand Up @@ -153,10 +154,15 @@ int main(int argc, char **argv) {
//Write it out
if (JIT) {
InitializeNativeTarget();
InitializeNativeTargetAsmPrinter();

outs() << "------- Running JIT -------\n";
Module &M = *Mod;
ExecutionEngine *ee = EngineBuilder(std::move(Mod)).create();
if (!ee) {
errs() << "Error: execution engine creation failed.\n";
abort();
}
std::vector<GenericValue> args;
Function *brainf_func = M.getFunction("brainf");
GenericValue gv = ee->runFunction(brainf_func, args);
Expand Down
1 change: 1 addition & 0 deletions examples/BrainF/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ set(LLVM_LINK_COMPONENTS
Core
ExecutionEngine
MC
MCJIT
Support
nativecodegen
)
Expand Down
88 changes: 41 additions & 47 deletions include/llvm/ADT/APFloat.h
Original file line number Diff line number Diff line change
Expand Up @@ -671,41 +671,49 @@ class APFloat : public APFloatBase {
Storage(const fltSemantics &Semantics, ArgTypes &&... Args) {
if (usesLayout<IEEEFloat>(Semantics)) {
new (&IEEE) IEEEFloat(Semantics, std::forward<ArgTypes>(Args)...);
} else if (usesLayout<DoubleAPFloat>(Semantics)) {
return;
}
if (usesLayout<DoubleAPFloat>(Semantics)) {
new (&Double) DoubleAPFloat(Semantics, std::forward<ArgTypes>(Args)...);
} else {
llvm_unreachable("Unexpected semantics");
return;
}
llvm_unreachable("Unexpected semantics");
}

~Storage() {
if (usesLayout<IEEEFloat>(*semantics)) {
IEEE.~IEEEFloat();
} else if (usesLayout<DoubleAPFloat>(*semantics)) {
return;
}
if (usesLayout<DoubleAPFloat>(*semantics)) {
Double.~DoubleAPFloat();
} else {
llvm_unreachable("Unexpected semantics");
return;
}
llvm_unreachable("Unexpected semantics");
}

Storage(const Storage &RHS) {
if (usesLayout<IEEEFloat>(*RHS.semantics)) {
new (this) IEEEFloat(RHS.IEEE);
} else if (usesLayout<DoubleAPFloat>(*RHS.semantics)) {
return;
}
if (usesLayout<DoubleAPFloat>(*RHS.semantics)) {
new (this) DoubleAPFloat(RHS.Double);
} else {
llvm_unreachable("Unexpected semantics");
return;
}
llvm_unreachable("Unexpected semantics");
}

Storage(Storage &&RHS) {
if (usesLayout<IEEEFloat>(*RHS.semantics)) {
new (this) IEEEFloat(std::move(RHS.IEEE));
} else if (usesLayout<DoubleAPFloat>(*RHS.semantics)) {
return;
}
if (usesLayout<DoubleAPFloat>(*RHS.semantics)) {
new (this) DoubleAPFloat(std::move(RHS.Double));
} else {
llvm_unreachable("Unexpected semantics");
return;
}
llvm_unreachable("Unexpected semantics");
}

Storage &operator=(const Storage &RHS) {
Expand Down Expand Up @@ -747,35 +755,29 @@ class APFloat : public APFloatBase {
}

IEEEFloat &getIEEE() {
if (usesLayout<IEEEFloat>(*U.semantics)) {
if (usesLayout<IEEEFloat>(*U.semantics))
return U.IEEE;
} else if (usesLayout<DoubleAPFloat>(*U.semantics)) {
if (usesLayout<DoubleAPFloat>(*U.semantics))
return U.Double.getFirst().U.IEEE;
} else {
llvm_unreachable("Unexpected semantics");
}
llvm_unreachable("Unexpected semantics");
}

const IEEEFloat &getIEEE() const {
if (usesLayout<IEEEFloat>(*U.semantics)) {
if (usesLayout<IEEEFloat>(*U.semantics))
return U.IEEE;
} else if (usesLayout<DoubleAPFloat>(*U.semantics)) {
if (usesLayout<DoubleAPFloat>(*U.semantics))
return U.Double.getFirst().U.IEEE;
} else {
llvm_unreachable("Unexpected semantics");
}
llvm_unreachable("Unexpected semantics");
}

void makeZero(bool Neg) { getIEEE().makeZero(Neg); }

void makeInf(bool Neg) {
if (usesLayout<IEEEFloat>(*U.semantics)) {
if (usesLayout<IEEEFloat>(*U.semantics))
return U.IEEE.makeInf(Neg);
} else if (usesLayout<DoubleAPFloat>(*U.semantics)) {
if (usesLayout<DoubleAPFloat>(*U.semantics))
return U.Double.makeInf(Neg);
} else {
llvm_unreachable("Unexpected semantics");
}
llvm_unreachable("Unexpected semantics");
}

void makeNaN(bool SNaN, bool Neg, const APInt *fill) {
Expand Down Expand Up @@ -803,13 +805,11 @@ class APFloat : public APFloatBase {

cmpResult compareAbsoluteValue(const APFloat &RHS) const {
assert(&getSemantics() == &RHS.getSemantics());
if (usesLayout<IEEEFloat>(getSemantics())) {
if (usesLayout<IEEEFloat>(getSemantics()))
return U.IEEE.compareAbsoluteValue(RHS.U.IEEE);
} else if (usesLayout<DoubleAPFloat>(getSemantics())) {
if (usesLayout<DoubleAPFloat>(getSemantics()))
return U.Double.compareAbsoluteValue(RHS.U.Double);
} else {
llvm_unreachable("Unexpected semantics");
}
llvm_unreachable("Unexpected semantics");
}

public:
Expand All @@ -828,13 +828,11 @@ class APFloat : public APFloatBase {
~APFloat() = default;

bool needsCleanup() const {
if (usesLayout<IEEEFloat>(getSemantics())) {
if (usesLayout<IEEEFloat>(getSemantics()))
return U.IEEE.needsCleanup();
} else if (usesLayout<DoubleAPFloat>(getSemantics())) {
if (usesLayout<DoubleAPFloat>(getSemantics()))
return U.Double.needsCleanup();
} else {
llvm_unreachable("Unexpected semantics");
}
llvm_unreachable("Unexpected semantics");
}

/// Factory for Positive and Negative Zero.
Expand Down Expand Up @@ -925,22 +923,18 @@ class APFloat : public APFloatBase {
void Profile(FoldingSetNodeID &NID) const { getIEEE().Profile(NID); }

opStatus add(const APFloat &RHS, roundingMode RM) {
if (usesLayout<IEEEFloat>(getSemantics())) {
if (usesLayout<IEEEFloat>(getSemantics()))
return U.IEEE.add(RHS.U.IEEE, RM);
} else if (usesLayout<DoubleAPFloat>(getSemantics())) {
if (usesLayout<DoubleAPFloat>(getSemantics()))
return U.Double.add(RHS.U.Double, RM);
} else {
llvm_unreachable("Unexpected semantics");
}
llvm_unreachable("Unexpected semantics");
}
opStatus subtract(const APFloat &RHS, roundingMode RM) {
if (usesLayout<IEEEFloat>(getSemantics())) {
if (usesLayout<IEEEFloat>(getSemantics()))
return U.IEEE.subtract(RHS.U.IEEE, RM);
} else if (usesLayout<DoubleAPFloat>(getSemantics())) {
if (usesLayout<DoubleAPFloat>(getSemantics()))
return U.Double.subtract(RHS.U.Double, RM);
} else {
llvm_unreachable("Unexpected semantics");
}
llvm_unreachable("Unexpected semantics");
}
opStatus multiply(const APFloat &RHS, roundingMode RM) {
return getIEEE().multiply(RHS.getIEEE(), RM);
Expand Down
7 changes: 7 additions & 0 deletions include/llvm/ADT/MapVector.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ template<typename KeyT, typename ValueT,
typename MapType = llvm::DenseMap<KeyT, unsigned>,
typename VectorType = std::vector<std::pair<KeyT, ValueT> > >
class MapVector {
typedef typename VectorType::value_type value_type;
typedef typename VectorType::size_type size_type;

MapType Map;
Expand All @@ -41,6 +42,12 @@ class MapVector {
typedef typename VectorType::reverse_iterator reverse_iterator;
typedef typename VectorType::const_reverse_iterator const_reverse_iterator;

/// Clear the MapVector and return the underlying vector.
VectorType takeVector() {
Map.clear();
return std::move(Vector);
}

size_type size() const { return Vector.size(); }

iterator begin() { return Vector.begin(); }
Expand Down
6 changes: 6 additions & 0 deletions include/llvm/ADT/SetVector.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,12 @@ class SetVector {

ArrayRef<T> getArrayRef() const { return vector_; }

/// Clear the SetVector and return the underlying vector.
Vector takeVector() {
set_.clear();
return std::move(vector_);
}

/// \brief Determine if the SetVector is empty or not.
bool empty() const {
return vector_.empty();
Expand Down
Loading