| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 231011
|
| |
|
|
| |
llvm-svn: 231007
|
| |
|
|
|
|
| |
This reverts commit 230975 to investigate buildbot breakage.
llvm-svn: 231004
|
| |
|
|
|
|
| |
This reverts commit 230990 because also reverting 230975.
llvm-svn: 231003
|
| |
|
|
| |
llvm-svn: 231001
|
| |
|
|
|
|
| |
MachineFunction.
llvm-svn: 230990
|
| |
|
|
|
|
|
|
|
|
|
| |
Add the enum "LLVMLinkerMode" back for backwards-compatibility and add the
linker mode parameter back to the "LLVMLinkModules" function. The paramter is
ignored and has no effect.
Patch provided by: Filip Pizlo
Reviewed by: Rafael and Sean
llvm-svn: 230988
|
| |
|
|
|
|
| |
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <tom@stellard.net>
llvm-svn: 230987
|
| |
|
|
| |
llvm-svn: 230985
|
| |
|
|
| |
llvm-svn: 230979
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When reading a yaml::SequenceTraits object, YAMLIO does not report an
error if the yaml item is not a sequence. Instead, YAMLIO reads an
empty sequence. For example:
---
seq:
foo: 1
bar: 2
...
If `seq` is a SequenceTraits object, then reading the above yaml will
yield `seq` as an empty sequence.
Fix this to report an error for the above mapping ("not a sequence")
Patch by William Fisher. Thanks!
llvm-svn: 230976
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
TargetRegisterInfo. DebugLocEntry now holds a buffer with the raw bytes
of the pre-calculated DWARF expression.
Ought to be NFC, but it does slightly alter the output format of the
textual assembly.
This reapplies 230930 with a relaxed assertion in DebugLocEntry::finalize()
that allows for empty DWARF expressions for constant FP values.
llvm-svn: 230975
|
| |
|
|
| |
llvm-svn: 230973
|
| |
|
|
| |
llvm-svn: 230972
|
| |
|
|
|
|
|
|
|
| |
Before: %x = load i32, i32* %i
After: %x = load i32, i32* %i
Purely cosmetic, so no new test case.
llvm-svn: 230966
|
| |
|
|
|
|
| |
NFC intended.
llvm-svn: 230965
|
| |
|
|
|
|
| |
By Asaf Badouh <asaf.badouh@intel.com>
llvm-svn: 230962
|
| |
|
|
|
|
|
| |
Fun fact: This file was never referenced since the initial checkin of
the NVPTX backend.
llvm-svn: 230957
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When the RHS of a conditional move node is zero, we can utilize the $zero
register by inverting the conditional move instruction and by swapping the
order of its True/False operands.
Reviewers: dsanders
Differential Revision: http://reviews.llvm.org/D7945
llvm-svn: 230956
|
| |
|
|
| |
llvm-svn: 230954
|
| |
|
|
| |
llvm-svn: 230948
|
| |
|
|
|
|
| |
intrinsics must be a power of 2.
llvm-svn: 230941
|
| |
|
|
|
|
| |
Fixes assertion failures/crashes on bad datalayout specifications.
llvm-svn: 230940
|
| |
|
|
|
|
|
| |
This manifested as assertions and/or crashes in later phases of optimization,
depending on the build configuration.
llvm-svn: 230939
|
| |
|
|
|
|
|
|
| |
be powers of two.
Previously this resulted in asserts and/or crashes (depending on build configuration) at various phases in the optimizer.
llvm-svn: 230938
|
| |
|
|
|
|
|
|
| |
Previously this would result in assertion failures or simply crashes
at various points in the optimizer when trying to create types of zero
bit width.
llvm-svn: 230936
|
| |
|
|
|
|
| |
Previous it would either assert in +Asserts, or crash in -Asserts. Found by fuzzing LLParser.
llvm-svn: 230935
|
| |
|
|
|
|
|
|
| |
operand of a GEP was valid.
This manifested as an assertion failure in +Asserts builds, and a hard crash in -Asserts builds. Found by fuzzing the LL parser.
llvm-svn: 230934
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A short list of some of the improvements:
1) Now supports -all command line argument, which implies many
other command line arguments to simplify usage.
2) Now supports -no-compiler-generated command line argument to
exclude compiler generated types.
3) Prints base class list.
4) -class-definitions implies -types.
5) Proper display of bitfields.
6) Can now distinguish between struct/class/interface/union.
And a few other minor tweaks.
llvm-svn: 230933
|
| |
|
|
| |
llvm-svn: 230932
|
| |
|
|
|
|
| |
to reference more.
llvm-svn: 230931
|
| |
|
|
|
|
|
|
|
|
| |
TargetRegisterInfo. DebugLocEntry now holds a buffer with the raw bytes
of the pre-calculated DWARF expression.
Ought to be NFC, but it does slightly alter the output format of the
textual assembly.
llvm-svn: 230930
|
| |
|
|
|
|
| |
It caused a failure on clang/test/Misc/backend-optimization-failure.cpp .
llvm-svn: 230929
|
| |
|
|
|
|
| |
doesn't fit in 5-bits. Fixes PR22743.
llvm-svn: 230924
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In AArch64PromoteConstant::appendAndTransferDominatedUses,
`InsertPts[NewPt]` invalidates IPI. Therefore, `InsertPts[NewPt] =
std::move(IPI->second)` is not legal.
This was caught by running `make check` with
http://reviews.llvm.org/D7931.
Reviewers: t.p.northover, grosbach, bkramer
Reviewed By: bkramer
Subscribers: aemerson, llvm-commits
Differential Revision: http://reviews.llvm.org/D7988
llvm-svn: 230923
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
As far as I can tell, the real bug causing the issue was fixed in
r230533. SCEVExpander should mark an increment operation as nuw or nsw
only if it can *prove* that the operation does not overflow. There
shouldn't be any situation where we have to do something different
because of no-wrap flags generated by SCEVExpander.
Revert "IndVarSimplify: Allow LFTR to fire more often"
This reverts commit 1ade0f0faa98877b688e0b9da58e876052c1e04e (SVN: 222213).
Revert "IndVarSimplify: Don't let LFTR compare against a poison value"
This reverts commit c0f2b8b528d8a37b0a1522aae90af649d6357eb5 (SVN: 217102).
Reviewers: majnemer, atrick, spatel
Differential Revision: http://reviews.llvm.org/D7979
llvm-svn: 230921
|
| |
|
|
| |
llvm-svn: 230911
|
| |
|
|
| |
llvm-svn: 230909
|
| |
|
|
|
|
| |
Thanks David !
llvm-svn: 230908
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
With initializer lists there is a really neat idiomatic way to write
this, 'ArrayRef.equals({1, 2, 3, 4, 5})'. Remove the equal method which
always had a hard limit on the number of arguments. I considered
rewriting it with variadic templates but that's not really a good fit
for a function with homogeneous arguments.
'ArrayRef == {1, 2, 3, 4, 5}' would've been even more awesome, but C++11
doesn't allow init lists with binary operators.
llvm-svn: 230907
|
| |
|
|
|
|
|
|
|
|
|
| |
Such edges are zero matrix, and they bring no additional info to the
allocation problem, apart from contributing to nodes' degree. Removing
those edges is expected to improve allocation time.
Tune the spill cost comparison, as this gives better average performances
now that the nodes' degrees has changed.
llvm-svn: 230904
|
| |
|
|
|
|
| |
Otherwise we have to emit thread-safe initialization for them. NFC.
llvm-svn: 230894
|
| |
|
|
| |
llvm-svn: 230892
|
| |
|
|
|
|
| |
Added more tests for scalar instructions to destinguish between AVX and AVX-512 forms.
llvm-svn: 230891
|
| |
|
|
| |
llvm-svn: 230889
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were missing a check for the following fold in DAGCombiner:
// fold (fmul (fmul x, c1), c2) -> (fmul x, (fmul c1, c2))
If 'x' is also a constant, then we shouldn't do anything. Otherwise, we could end up swapping the operands back and forth forever.
This should fix:
http://llvm.org/bugs/show_bug.cgi?id=22698
Differential Revision: http://reviews.llvm.org/D7917
llvm-svn: 230884
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Start using `TempMDNode` in `DIDescriptor::replaceAllUsesWith()`
(effectively `std::unique_ptr<MDNode, MDNode::deleteTemporary>`).
Besides making ownership more explicit, this prepares for when
`DIDescriptor` refers to nodes that are *not* `MDTuple`. The old logic
for "replacing" a node with itself used `MDNode::get()` to return a new
(uniqued) `MDTuple`, while the new logic just defers to
`MDNode::replaceWithUniqued()` (which also typically saves an allocation
and RAUW traffic by mutating the temporary in place).
llvm-svn: 230879
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While gaining practical experience hand-updating CHECK lines (for moving
the new debug info hierarchy into place), I learnt a few things about
CHECK-ability of the specialized node assembly output.
- The first part of a `CHECK:` is to identify the "right" node (this
is especially true if you intend to use the new `CHECK-SAME`
feature, since the first CHECK needs to identify the node correctly
before you can split the line).
- If there's a `tag:`, it should go first.
- If there's a `name:`, it should go next (followed by the
`linkageName:`, if any).
- If there's a `scope:`, it should follow after that.
- When a node type supports multiple DW_TAGs, but one is implied by
its name and is overwhelmingly more common, the `tag:` field is
terribly uninteresting unless it's different.
- `MDBasicType` is almost always `DW_TAG_base_type`.
- `MDTemplateValueParameter` is almost always
`DW_TAG_template_value_parameter`.
- Printing `name: ""` doesn't improve CHECK-ability, and there are far
more nodes than I realized that are commonly nameless.
- There are a few other fields that similarly aren't very interesting
when they're empty.
This commit updates the `AsmWriter` as suggested above (and makes
necessary changes in `LLParser` for round-tripping).
llvm-svn: 230877
|
| |
|
|
| |
llvm-svn: 230876
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Properly escape string fields in metadata. I've added a spot-check with
direct coverage for `MDFile::getFilename()`, but we'll get more coverage
once the hierarchy is moved into place (since this comes up in various
checked-in testcases).
I've replicated the `if` logic using the `ShouldSkipEmpty` flag
(although a follow-up commit is going to change how often this flag is
specified); no NFCI other than escaping the string fields.
llvm-svn: 230875
|