| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 159082
|
| |
|
|
|
|
| |
<sidneym@codeaurora.org>
llvm-svn: 159081
|
| |
|
|
|
|
|
| |
Remove temporary GlobalVariable constructors now that Clang has been
updated (r159078).
llvm-svn: 159079
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows the user/front-end to specify a model that is better
than what LLVM would choose by default. For example, a variable
might be declared as
@x = thread_local(initialexec) global i32 42
if it will not be used in a shared library that is dlopen'ed.
If the specified model isn't supported by the target, or if LLVM can
make a better choice, a different model may be used.
llvm-svn: 159077
|
| |
|
|
|
|
|
|
| |
Local.cpp, Execution.cpp and BitcodeWriter.cpp.
I got about 1% of compile-time improvement on my machines (Ubuntu 11.10 i386 and Ubuntu 12.04 x64).
llvm-svn: 159076
|
| |
|
|
| |
llvm-svn: 159075
|
| |
|
|
| |
llvm-svn: 159074
|
| |
|
|
| |
llvm-svn: 159073
|
| |
|
|
| |
llvm-svn: 159071
|
| |
|
|
|
|
| |
intrinsic patterns. Mem forms omitted because the load size is only 64-bits.
llvm-svn: 159070
|
| |
|
|
|
|
|
|
| |
It's simple: Don't treat <undef> operands as uses, and don't assume a
virtual register has a defining instruction unless a real use has been
seen.
llvm-svn: 159061
|
| |
|
|
| |
llvm-svn: 159058
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are patterns to handle immediates when they fit in the immediate field.
e.g. %sub = add i32 %x, -123
=> sub r0, r0, #123
Add patterns to catch immediates that do not fit but should be materialized
with a single movw instruction rather than movw + movt pair.
e.g. %sub = add i32 %x, -65535
=> movw r1, #65535
sub r0, r0, r1
rdar://11726136
llvm-svn: 159057
|
| |
|
|
| |
llvm-svn: 159055
|
| |
|
|
|
|
|
|
|
|
|
| |
As an example of how the custom DiagnosticType can be used to provide
better operand-mismatch diagnostics, add a custom diagnostic for
the imm0_15 operand class used for several system instructions.
Update the tests to expect the improved diagnostic.
rdar://8987109
llvm-svn: 159051
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
"Invalid operand" may be a completely correct diagnostic, but it's often
insufficiently specific to really help identify and fix the problem in
assembly source. Allow a target to specify a more-specific diagnostic kind
for each AsmOperandClass derived definition and use that to provide
more detailed diagnostics when an operant of that class resulted in a
match failure.
rdar://8987109
llvm-svn: 159050
|
| |
|
|
|
|
|
| |
The isel (integer select) instruction is supported on the 440 and A2
embedded cores and on the POWER7.
llvm-svn: 159045
|
| |
|
|
| |
llvm-svn: 159044
|
| |
|
|
| |
llvm-svn: 159042
|
| |
|
|
|
|
| |
The ProcessImplicitDefs class can be local to its implementation file.
llvm-svn: 159041
|
| |
|
|
| |
llvm-svn: 159039
|
| |
|
|
| |
llvm-svn: 159035
|
| |
|
|
| |
llvm-svn: 159030
|
| |
|
|
|
|
| |
It is both smaller and faster than DenseMap.
llvm-svn: 159029
|
| |
|
|
| |
llvm-svn: 159028
|
| |
|
|
|
|
|
|
|
|
| |
Original commit message:
Allow up to 64 functional units per processor itinerary.
This patch changes the type used to hold the FU bitset from unsigned to uint64_t.
This will be needed for some upcoming PowerPC itineraries.
llvm-svn: 159027
|
| |
|
|
|
|
| |
zero-filled global. rdar://11729134
llvm-svn: 159023
|
| |
|
|
|
|
| |
Don't try to print out the live range of a physreg.
llvm-svn: 159021
|
| |
|
|
|
|
|
| |
DBG_VALUE instructions could be referring to non-existing virtual
registers.
llvm-svn: 159020
|
| |
|
|
|
|
|
| |
There is no need to check for physreg live ranges. They don't exist any
more.
llvm-svn: 159019
|
| |
|
|
|
|
| |
Everyone is using on-demand regunit ranges now.
llvm-svn: 159018
|
| |
|
|
| |
llvm-svn: 159017
|
| |
|
|
|
|
|
| |
These functions only operate on virtual registers now, and they all have
live ranges.
llvm-svn: 159015
|
| |
|
|
| |
llvm-svn: 159014
|
| |
|
|
|
|
|
| |
Don't depend on LiveIntervals::hasInterval() to determine if a physreg
is reserved and constant.
llvm-svn: 159013
|
| |
|
|
| |
llvm-svn: 159011
|
| |
|
|
|
|
| |
This should produce the same results as using physreg liveness directly.
llvm-svn: 159009
|
| |
|
|
|
|
|
|
|
| |
With regunit liveness permanently enabled, this function would always
return true.
Also remove now obsolete code for checking physreg interference.
llvm-svn: 159006
|
| |
|
|
|
|
|
|
|
|
|
| |
This fixes PR5997.
These transforms were disabled because codegen couldn't deal with other
uses of trunc(x). This is now handled by the peephole pass.
This causes no regressions on x86-64.
llvm-svn: 159003
|
| |
|
|
| |
llvm-svn: 159000
|
| |
|
|
| |
llvm-svn: 158999
|
| |
|
|
|
|
|
|
|
|
| |
Original message:
Performance optimizations:
- SwitchInst: case values stored separately from Operands List. It allows to make faster access to individual case value numbers or ranges.
- Optimized IntItem, added APInt value caching.
- Optimized IntegersSubsetGeneric: added optimizations for cases when subset is single number or when subset consists from single numbers only.
llvm-svn: 158997
|
| |
|
|
|
|
| |
possibly due to r158939.
llvm-svn: 158994
|
| |
|
|
|
|
| |
knows dwarf or not.
llvm-svn: 158993
|
| |
|
|
|
|
| |
DwarfUsesRelocationsAcrossSections.
llvm-svn: 158992
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
fail. Original commit message:
Performance optimizations:
- SwitchInst: case values stored separately from Operands List. It allows to make faster access to individual case value numbers or ranges.
- Optimized IntItem, added APInt value caching.
- Optimized IntegersSubsetGeneric: added optimizations for cases when subset is single number or when subset consists from single numbers only.
On my machine these optimizations gave about 4-6% of compile-time improvement.
llvm-svn: 158986
|
| |
|
|
|
|
|
|
|
|
| |
- SwitchInst: case values stored separately from Operands List. It allows to make faster access to individual case value numbers or ranges.
- Optimized IntItem, added APInt value caching.
- Optimized IntegersSubsetGeneric: added optimizations for cases when subset is single number or when subset consists from single numbers only.
On my machine these optimizations gave about 4-6% of compile-time improvement.
llvm-svn: 158979
|
| |
|
|
|
|
|
|
| |
This makes it explicit when ScoreboardHazardRecognizer will be used.
"GenericItineraries" would only make sense if it contained real
itinerary values and still required ScoreboardHazardRecognizer.
llvm-svn: 158963
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code in X86TargetLowering::LowerEH_RETURN() assumes that a frame
pointer exists, but the frame pointer was forced by the presence of
llvm.eh.unwind.init which isn't guaranteed.
If llvm.eh.unwind.init is actually required in functions calling
eh.return (is it?), we should diagnose that instead of emitting bad
machine code.
This should fix the dragonegg-x86_64-linux-gcc-4.6-test bot.
llvm-svn: 158961
|
| |
|
|
|
|
|
|
|
|
| |
This is a minor drive-by fix with no robust way to unit test.
As an example see neon-div.ll:
SU(16): %Q8<def> = VMOVLsv4i32 %D17, pred:14, pred:%noreg, %Q8<imp-use,kill>
val SU(1): Latency=2 Reg=%Q8
...should be latency=1
llvm-svn: 158960
|