Benjamin Kramer
3973e4b71b
[CodeGenPrepare] Compress a pair. No functional change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243759 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-31 17:00:39 +00:00
Benjamin Kramer
55556435fd
[dsymutil] Remove extra semicolon. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242894 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-22 11:54:19 +00:00
Benjamin Kramer
0836620230
[AggressiveAntiDepBreaker] Use range loops for multimap access.
...
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242620 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-18 20:05:10 +00:00
Benjamin Kramer
7e320cc2c8
[Hexagon] Use composition instead of inheritance from STL types
...
The standard containers are not designed to be inherited from, as
illustrated by the MSVC hacks for NodeOrdering. No functional change
intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242616 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-18 17:43:23 +00:00
Benjamin Kramer
fc0d94c8ec
[NVPTX] Don't leak dead instructions after unlinking them from the BasicBlock
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242417 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-16 16:51:48 +00:00
Benjamin Kramer
81266fc854
[Mips] Make helper function static, NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242393 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-16 11:12:05 +00:00
Benjamin Kramer
17351cfb43
[PPC] Disassemble little endian ppc instructions in the right byte order
...
PR24122. The test is simply a byte swapped version of ppc64-encoding.txt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242288 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-15 12:56:19 +00:00
Benjamin Kramer
360ec4c35f
[Hexagon] Move BitTracker into the llvm namespace and remove redundant qualifications
...
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242062 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-13 20:38:16 +00:00
Benjamin Kramer
0ed5091742
Remove macro guards for extern template instantiations.
...
This is a C++11 feature that both GCC and MSVC have supported as ane extension
long before C++11 was approved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242042 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-13 17:21:31 +00:00
Benjamin Kramer
ed5546e50b
Avoid using Loop::getSubLoopsVector.
...
Passes should never modify it, just use the const version. While there
reduce copying in LoopInterchange. No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242041 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-13 17:21:14 +00:00
Benjamin Kramer
b0927bee8e
[InstSimplify] Fold away ord/uno fcmps when nnan is present.
...
This is important to fold away the slow case of complex multiplies
emitted by clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241911 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-10 14:02:02 +00:00
Benjamin Kramer
32f3dc455b
[Triple] Add a helper to switch between big/little endian variants
...
This will be used from clang's driver.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241527 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-06 23:58:14 +00:00
Benjamin Kramer
54b3b4c15e
[TargetLowering] StringRefize asm constraint getters.
...
There is some functional change here because it changes target code from
atoi(3) to StringRef::getAsInteger which has error checking. For valid
constraints there should be no difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241411 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-05 19:29:18 +00:00
Benjamin Kramer
c9a5964ea2
Delete dead code. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241367 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-03 19:10:09 +00:00
Benjamin Kramer
a2b83fd687
[AsmPrinter] Hide implementation details
...
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241169 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-01 16:18:16 +00:00
Benjamin Kramer
3690da1dfa
[SDAG] Give InstrEmitter hidden visibility
...
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241165 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-01 14:55:10 +00:00
Benjamin Kramer
b453775cc2
[CodeGen] Reduce visibility of implementation details
...
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241164 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-01 14:47:39 +00:00
Benjamin Kramer
17d7215661
[MMI] Use TinyPtrVector instead of PointerUnion with vector.
...
Also simplify duplicated code a bit. No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240990 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-29 20:21:55 +00:00
Benjamin Kramer
59a20ece84
[SymbolSize] Skip sorting by index, just assign by index.
...
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240961 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-29 16:05:00 +00:00
Benjamin Kramer
4c6f0a7bc9
Upgrade JIT listeners for changes in the libObject API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240956 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-29 15:18:48 +00:00
Benjamin Kramer
0bd9021d62
Don't use %llc_dwarf for target-specific tests.
...
Should fix running them on windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240892 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-27 21:11:43 +00:00
Benjamin Kramer
45b5f7e457
[SDAG] Now that we have a way to communicate the exact bit on sdiv use it to simplify sdiv by a constant.
...
We had a hack in SDAGBuilder in place to work around this but now we
can avoid that. Call BuildExactSDIV from BuildSDIV so DAGCombiner can
perform this trick automatically.
The added check in DAGCombiner is necessary to prevent exact sdiv by pow2
from regressing as the target-specific pow2 lowering is not aware of
exact bits yet.
This is mostly covered by existing tests. One side effect is that we
get the better lowering for exact vector sdivs now too :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240891 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-27 20:33:26 +00:00
Benjamin Kramer
78c5b7fe3c
Add Value.def to the list of textual includes, excluding it from the modules build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240823 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-26 20:16:44 +00:00
Benjamin Kramer
c8a20cabb7
Make header parse standalone. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240814 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-26 19:04:11 +00:00
Benjamin Kramer
23a207d839
[DAGCombine] Fix demanded bits computation for exact shifts.
...
Fixes a miscompilation of MultiSource/Benchmarks/MallocBench/gs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240796 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-26 16:59:31 +00:00
Benjamin Kramer
875007d3c4
[DAGCombiner] Preserve the exact bit when simplifying SRA to SRL.
...
Allows more aggressive folding of ashr/shl pairs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240788 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-26 14:51:49 +00:00
Benjamin Kramer
3791d56da6
[DAGCombine] fold (X >>?,exact C1) << C2 --> X << (C2-C1)
...
Instcombine also does this but many opportunities only become visible
after GEPs are lowered.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240787 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-26 14:51:36 +00:00
Benjamin Kramer
b81740d146
Don't use std::make_unique.
...
We still have to support C++11 standard libraries, make_unique is a C++14
feature.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240642 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-25 13:47:36 +00:00
Benjamin Kramer
6f5a75de5e
[PPC] Replace debug value skipping with getLastNonDebugInstr.
...
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240641 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-25 13:39:03 +00:00
Benjamin Kramer
2f6d58ae0d
Replace copy-pasted debug value skipping with MBB::getLastNonDebugInstr
...
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240639 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-25 13:28:24 +00:00
Benjamin Kramer
896353d663
[Option] Plug a leak when move-assigning an InputArgList.
...
The class has a non-trivial dtor so we have to clean up before we move
in new members. Remove misleading comment as a default move assignment
operator will never be synthesized for this class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240417 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-23 15:28:10 +00:00
Benjamin Kramer
9492ec55bd
Make helper functions static. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240416 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-23 14:51:40 +00:00
Benjamin Kramer
530a616a9d
[BranchFolding] Document why replacing HashMachineInstr with hash_code doesn't work
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240415 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-23 14:47:36 +00:00
Benjamin Kramer
336ead08bd
[MachineBasicBlock] Add getFirstNonDebugInstr to complement getLastNonDebugInstr
...
Use it in CodeGen where applicable. No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240414 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-23 14:47:29 +00:00
Benjamin Kramer
d18bb88b2e
[MachineBasicBlock] Use the const_cast(this) trick to reduce duplication
...
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240413 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-23 14:47:18 +00:00
Benjamin Kramer
793ca75174
[PPC] Factor vector removal into a function and remove O(n^2) behavior.
...
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240222 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-20 15:59:41 +00:00
Benjamin Kramer
35d21618cb
[SwitchLowering] Remove quadratic vector removal.
...
This can be triggered with giant switches. No functionality change
intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240221 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-20 15:59:34 +00:00
Benjamin Kramer
ec7aa02d9f
[BranchFolding] Replace custom MachineInstr with MachineInstrExpressionTrait
...
While the hash functions are subtly different it shouldn't have an
impact. Instructions are checked with isIdenticalTo later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240040 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-18 20:00:03 +00:00
Benjamin Kramer
bc3cb889cd
[EliminateDuplicatePHINodes] Replace custom hash map with DenseSet.
...
While there use hash_combine instead of hand-rolled hashing. No
functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240023 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-18 16:01:00 +00:00
Benjamin Kramer
24e04b80a5
[AsmPrinter] Make isRepeatedByteSequence smarter about odd integer types
...
- zext the value to alloc size first, then check if the value repeats
with zero padding included. If so we can still emit a .space
- Do the checking with APInt.isSplat(8), which handles non-pow2 types
- Also handle large constants (bit width > 64)
- In a ConstantArray all elements have the same type, so it's sufficient
to check the first constant recursively and then just compare if all
following constants are the same by pointer compare
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239977 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-17 23:55:17 +00:00
Benjamin Kramer
cf1e4a26ad
Add missing include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239946 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-17 21:08:22 +00:00
Benjamin Kramer
3cab8a1193
[Bitcode] Replace hand-coded little endian handling with Endian.h functions.
...
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239944 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-17 20:55:30 +00:00
Benjamin Kramer
aa94b68e1b
[ArchiveWriter] Use EndianStream. No functional change intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239913 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-17 16:02:56 +00:00
Benjamin Kramer
4bf8188289
[MC/Dwarf] Encode DW_CFA_advance_loc in target endianess.
...
This matches GNU as output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239911 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-17 15:14:35 +00:00
Benjamin Kramer
8a8bb45a76
[InstSimplify] Allow folding of fdiv X, X with just NaNs ignored
...
Any combination of +-inf/+-inf is NaN so it's already ignored with
nnan and we can skip checking for ninf. Also rephrase logic in comments
a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239821 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-16 14:57:29 +00:00
Benjamin Kramer
4f9d346fa0
[LinkerTest] Use LLVMDisposeMessage to free error string.
...
LLVMDisposeMessage is just a thing wrapper around free at the moment, but it's
the proper API to use here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239731 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-15 15:42:26 +00:00
Benjamin Kramer
49e5e9f0c9
[InstSimplify] fsub nnan x, x -> 0.0 is valid without ninf
...
Both inf - inf and (-inf) - (-inf) are NaN, so it's already covered by
nnan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239702 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-14 21:01:20 +00:00
Benjamin Kramer
f3e82660de
[InstSimplify] Add self-fdiv identities for -ffinite-math-only.
...
When NaNs and Infs are ignored we can fold
X / X -> 1.0
-X / X -> -1.0
X / -X -> -1.0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239701 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-14 18:53:58 +00:00
Benjamin Kramer
2a8a1b8c6f
[Statepoints] Skip a vector copy when uniquing values.
...
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239688 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-13 19:50:38 +00:00
Benjamin Kramer
4bb355e885
[ExecutionEngine] ArrayRefize argument passing.
...
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239687 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-13 19:50:29 +00:00
Benjamin Kramer
dd183f1e4c
[LinkerTest] Don't leak error string.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239673 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-13 12:53:21 +00:00
Benjamin Kramer
29edabcc44
Replace an instance of custom atomics with standard ones.
...
Eventually I want to get rid of them entirely, but Statistic.h is still blocked
on MSVC bugs. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239545 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-11 17:30:34 +00:00
Benjamin Kramer
d5254aba82
[Hexagon] Make global arrays 'static const'. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239475 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-10 14:43:59 +00:00
Benjamin Kramer
ea8e85d925
Replace loop with std::equal. NFC intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239430 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-09 20:41:21 +00:00
Benjamin Kramer
9ebaf8ce67
Prefer copy init over direct init. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239327 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-08 18:58:57 +00:00
Benjamin Kramer
7dcbed058f
Remove global std::string. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239254 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-07 16:36:28 +00:00
Benjamin Kramer
aa8479458e
[AsmWriter] Rewrite module asm printing using StringRef::split.
...
No change in output intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239251 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-07 13:59:33 +00:00
Benjamin Kramer
cdb8c729f2
[TargetParser] Properly attach functions of ARMTargetParser to the class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239158 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-05 14:33:02 +00:00
Benjamin Kramer
474d2e0f05
[ARM] Make helper function static.
...
This one had a declaration but it differed from the definition so the
declaration was actually dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239157 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-05 14:32:54 +00:00
Benjamin Kramer
c9f2b5d535
[SDAG switch lowering] Fix switch case -> or merging for 0 and INT_MIN
...
The big/small ordering here is based on signed values so SmallValue will
be INT_MIN and BigValue 0. This shouldn't be a problem but the code
assumed that BigValue always had more bits set than SmallValue.
We used to just miss the transformation, but a recent refactoring of
mine turned this into an assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239105 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-04 22:05:51 +00:00
Benjamin Kramer
5deb54f199
[MachOWriter] Use for-range and roll some duplicated code into loops.
...
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239096 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-04 21:17:27 +00:00
Benjamin Kramer
15df8bebdc
[APInt] Remove special case for i1.
...
Add a unit test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239062 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-04 18:19:13 +00:00
Benjamin Kramer
b0ed8b72ef
[SDag switch lowering] Simplify code a bit. No functional change intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239056 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-04 17:07:59 +00:00
Benjamin Kramer
7ec7c7d865
Replace custom fixed endian to raw_ostream emission with EndianStream.
...
Less code, clearer and more efficient. No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239040 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-04 15:03:02 +00:00
Benjamin Kramer
5a04f4af36
Push constness through LoopInfo::isLoopHeader and clean it up a bit.
...
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238843 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-02 15:28:27 +00:00
Benjamin Kramer
d79915c6fe
[MC] Simplify code. No functionality change intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238676 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-31 18:49:28 +00:00
Benjamin Kramer
bfe3365795
[MC] Reorder MCSymbol members to reduce padding.
...
sizeof(MCSymbol) goes from 72 to 64 bytes on x86_64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238655 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-30 13:52:30 +00:00
Benjamin Kramer
9589ff8949
Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types
...
If the type isn't trivially moveable emplace can skip a potentially
expensive move. It also saves a couple of characters.
Call sites were found with the ASTMatcher + some semi-automated cleanup.
memberCallExpr(
argumentCountIs(1), callee(methodDecl(hasName("push_back"))),
on(hasType(recordDecl(has(namedDecl(hasName("emplace_back")))))),
hasArgument(0, bindTemporaryExpr(
hasType(recordDecl(hasNonTrivialDestructor())),
has(constructExpr()))),
unless(isInTemplateInstantiation()))
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238602 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-29 19:43:39 +00:00
Benjamin Kramer
331b719b2b
[AsmPrinter] Destroy allocated DIEAbbrevs on teardown.
...
DIEAbbrev contains a SmallVector that can leak for overly large abbrevs. They
used to be owned by the DIE, but after the recent refactoring DWARFFile
allocates its own abbrevs.
Leak found by asan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238418 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-28 12:55:43 +00:00
Benjamin Kramer
7f4bf08286
[MC] Replace custom string join function with the one from StringExtras.
...
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238414 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-28 11:45:32 +00:00
Benjamin Kramer
24bccaf9f9
Don't call utostr in Twine/raw_ostream contexts.
...
Creating temporary std::strings there is unnecessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238412 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-28 11:24:24 +00:00
Benjamin Kramer
675da70da5
Refactor: Simplify boolean conditional return statements in llvm/lib/DebugInfo/DWARF
...
Use clang-tidy to simplify boolean conditional return statements. Patch by
Richard Thomson <legalize@xmission.com >!
Differential Revision: http://reviews.llvm.org/D9972
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238132 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-25 13:28:03 +00:00
Benjamin Kramer
1de72bda4e
Bump SmallString to the minimum required amount for raw_ostream to avoid allocation.
...
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238104 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-23 17:20:53 +00:00
Benjamin Kramer
2b5e37952f
[Mips] Prefer Twine::utohexstr over utohexstr, saves a string copy.
...
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238103 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-23 16:53:07 +00:00
Benjamin Kramer
083d79a583
[AArch64] Clean up the ELF streamer a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238102 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-23 16:39:10 +00:00
Benjamin Kramer
24b6dadf2d
[AArch64] Move AArch64TargetStreamer out of MCStreamer.h
...
It doesn't belong in the shared MC layer. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238101 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-23 16:15:10 +00:00
Benjamin Kramer
4c919af335
[LoopDistribute] Remove a layer of pointer indirection.
...
Just store InstPartitions directly into the std::list. No functional change
intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237930 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-21 18:32:07 +00:00
Benjamin Kramer
644f1ff184
[X86] Remove unused node after morphing it from shr to and.
...
In some cases it won't get cleaned up properly leading to crashes
downstream. PR23353.
Based on a patch by Davide Italiano.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237828 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-20 20:10:26 +00:00
Benjamin Kramer
10054fb7b0
[YAML] Make Node's destructor non-virtual.
...
Nodes aren't supposed to be destroyed polymorphically. Also make all subclasses
final to avoid non-virtual dtor warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237801 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-20 15:38:29 +00:00
Benjamin Kramer
825a528bbe
[YAML] Plug a memory leak
...
The destructor of BlockScalarNode is never called. Store the contained
string in BumpPtrAllocated memory instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237614 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-18 21:11:27 +00:00
Benjamin Kramer
e9fd02be07
Move Pass into anonymous namespace. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237526 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-16 16:16:35 +00:00
Benjamin Kramer
11ba91f321
[WinEH] Push unique_ptr through the Action interface.
...
This was the source of many leaks in the past, this should fix them once and
for all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237524 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-16 15:40:03 +00:00
Benjamin Kramer
a0b851cb9c
DenseMap: Remove poisoning of unused memory.
...
DenseMap has great support for catching invalidated iterators now so we can get
rid of this crude hack. Use after frees are covered by asan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237523 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-16 14:19:54 +00:00
Benjamin Kramer
8ef9968822
MC: Lower the default alignment of MCContext's operator new to 8
...
This is more than sufficient for all MC types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237522 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-16 13:54:08 +00:00
Benjamin Kramer
7a712a0b9f
Remove std::move on return of temporary.
...
No functionality change. Found by -Wpessimizing-move.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236318 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-01 15:26:22 +00:00
Benjamin Kramer
da747d95a3
Remove std::move on return of temporary.
...
No functionality change. Found by -Wpessimizing-move.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236317 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-01 15:25:29 +00:00
Benjamin Kramer
fda9fd463d
Remove std::move on return when it could prevent copy elision.
...
Found by -Wpessimizing-move, no functional change. The APFloat and
PassManager change doesn't affect codegen as returning a by-value
argument will always result in a move.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236316 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-01 15:16:11 +00:00
Benjamin Kramer
b6ee10d9e5
[ARM] Simplify code. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235803 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-25 17:25:13 +00:00
Benjamin Kramer
4b86b0db83
[hexagon] Use range-based for loops. No functionality change intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235802 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-25 14:46:53 +00:00
Benjamin Kramer
79408c7dc8
[hexagon] Remove setHexLibcallName, it leaks memory.
...
Just spell out the full names, it's not that much more code.
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235801 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-25 14:46:46 +00:00
Benjamin Kramer
339bc7faf0
[InstCombine] Create zero constants on demand.
...
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235257 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-18 16:52:08 +00:00
Benjamin Kramer
1e5490b167
[mc] Clean up emission of byte sequences
...
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235178 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-17 11:12:43 +00:00
Benjamin Kramer
e6da045ce1
[Mips] Use unique_ptr to manage ownership.
...
Required some tweaking of ValueMap to accommodate a move-only value
type. No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235091 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-16 12:43:33 +00:00
Benjamin Kramer
edc3aaefa6
Make it obvious that we're iterating over a range of pointers.
...
Found by -Wrange-loop-analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235090 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-16 12:43:07 +00:00
Benjamin Kramer
822147fcb2
Mark empty default constructors as =default if it makes the type POD
...
NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234694 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-11 18:57:14 +00:00
Benjamin Kramer
38ebdeea7a
Make OnDiskChainedHashTableGenerator's Bucket type a POD type and reorder fields to optimize padding
...
For the common case of offset_type=unsigned this brings Bucket from 24 to 16
bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234692 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-11 18:00:28 +00:00
Benjamin Kramer
829e013107
Remove empty non-virtual destructors or mark them =default when non-public
...
These add no value but can make a class non-trivially copyable. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234688 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-11 15:32:26 +00:00
Benjamin Kramer
306699f8ca
[CodeGenPrepare] Report all changes made during instruction sinking
...
r234638 chained another transform below which was tripping over the
deleted instruction. Use after free found by asan in many regression
tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234654 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-10 22:25:36 +00:00
Benjamin Kramer
b6ee41f057
[CallSite] Use the injected base class name. NFC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234606 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-10 16:02:34 +00:00
Benjamin Kramer
e749325463
[CallSite] Make construction from Value* (or Instruction*) explicit.
...
CallSite roughly behaves as a common base CallInst and InvokeInst. Bring
the behavior closer to that model by making upcasts explicit. Downcasts
remain implicit and work as before.
Following dyn_cast as a mental model checking whether a Value *V isa
CallSite now looks like this:
if (auto CS = CallSite(V)) // think dyn_cast
instead of:
if (CallSite CS = V)
This is an extra token but I think it is slightly clearer. Making the
ctor explicit has the advantage of not accidentally creating nullptr
CallSites, e.g. when you pass a Value * to a function taking a CallSite
argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234601 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-10 14:50:08 +00:00