Craig Topper
2123b18247
Remove intrinsic specific instructions for (V)CVTPS2DQ and replace with patterns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159108 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 06:55:37 +00:00
Craig Topper
081f931077
Fix build failures from r159106.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159107 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 06:08:31 +00:00
Craig Topper
66a69fa729
Remove intrinsic specific instructions for CVTPD2PS and replace with just patterns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159106 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 05:44:31 +00:00
Craig Topper
7f2ea14c68
Remove intrinsic specific instructions for CVTPD2DQ. Replace with patterns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159105 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 05:33:24 +00:00
Nick Lewycky
3eab3c4d40
Tab to spaces. No functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159104 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 04:07:14 +00:00
NAKAMURA Takumi
33f2139585
llvm/lib/Support/Errno.cpp: [Win32] Fix usage of strerror_s().
...
FYI, two arguments of strerror_s() is provided in C++ on msvc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159103 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 03:51:04 +00:00
NAKAMURA Takumi
a1c8420f1b
VMCore/CMakeLists.txt: [CMake][MSVC] Add "/Og-" to Function.cpp on msvc10. Otherwise, it took over 20 minutes to compile.
...
FIXME: Suppressing optimizations to core libraries would not be good thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159097 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 03:48:29 +00:00
Nick Lewycky
917f99354f
Remove a dangling reference to a deleted instruction. Fixes PR13185!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159096 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 01:44:08 +00:00
Pete Cooper
6e2db65266
Remove code i'd been testing with but didn't mean to commit. Oops
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159094 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 00:08:36 +00:00
Pete Cooper
b49998d76c
DAG legalisation can now handle illegal fma vector types by scalarisation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159092 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-24 00:05:44 +00:00
Craig Topper
c82b9a51a2
Remove intrinsic specific instructions for (V)CVTDQ2PS. Use a Pat instead instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159090 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 22:33:14 +00:00
Hal Finkel
e415f96b6a
Allow BBVectorize to fuse compare instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159088 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 21:52:50 +00:00
Craig Topper
624a9c49d4
Make CVTDQ2PS instruction use SSE2 predicate instead of SSE1. No functional change because there are no patterns in the instructions. Also fix a typo in a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159087 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 20:52:45 +00:00
Craig Topper
6fc218e3a1
Move CVTPD2DQ to use SSE2 predicate instead of SSE3. Move DQ2PD and PD2DQ to the SSE2 section of the file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159086 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 20:15:42 +00:00
Benjamin Kramer
d52998a815
Add a microoptimization note.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159082 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 15:19:31 +00:00
Hans Wennborg
6de8ffbbc9
Clean-up after r159077.
...
Remove temporary GlobalVariable constructors now that Clang has been
updated (r159078).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159079 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 12:14:23 +00:00
Hans Wennborg
ce718ff9f4
Extend the IL for selecting TLS models (PR9788)
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159077 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 11:37:03 +00:00
Stepan Dyatkovskiy
47cbc4e0ee
Optimized usage of new SwitchInst case values (IntegersSubset type) in 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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159076 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 10:58:58 +00:00
Craig Topper
fc76b8691e
Use correct memory types for (V)CVTDQ2PD instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159075 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 08:30:27 +00:00
Craig Topper
0a2f793d6e
Silence an unused variable warning on release builds.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159074 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 08:09:30 +00:00
Craig Topper
3ed920f308
Compress flags in X86 op folding to reduce space in static tables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159073 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 08:01:18 +00:00
Craig Topper
f318457547
Make helper method static since it doesn't use anything in the class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159071 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 04:58:41 +00:00
Craig Topper
eea4a9b1e6
Remove intrinsic specific instructions for 128-bit (V)CVTDQ2PD. Replace with intrinsic patterns. Mem forms omitted because the load size is only 64-bits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159070 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 04:23:36 +00:00
Jakob Stoklund Olesen
7806c0778f
Teach LiveVariables to handle <undef> operands.
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159061 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 02:23:00 +00:00
Rafael Espindola
ce0a5cda8a
Handle aliases to tls variables in all architectures, not just x86.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159058 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 00:30:03 +00:00
Evan Cheng
fc47253294
(sub X, imm) gets canonicalized to (add X, -imm)
...
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159057 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 00:29:06 +00:00
Nuno Lopes
512be1f83e
BoundsChecking: attach debug info to traps to make my life a bit more sane
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159055 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-23 00:12:34 +00:00
Jim Grosbach
70c9bf3c1a
ARM: Add a better diagnostic for some out of range immediates.
...
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159051 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 23:56:48 +00:00
Hal Finkel
009f7afbeb
Add support for the PPC isel instruction.
...
The isel (integer select) instruction is supported on the 440 and A2
embedded cores and on the POWER7.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159045 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 23:10:08 +00:00
Jakob Stoklund Olesen
0cafa139c0
Remove ProcessImplicitDefs.h which was unused.
...
The ProcessImplicitDefs class can be local to its implementation file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159041 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 22:27:36 +00:00
Jakob Stoklund Olesen
f935e945c0
Also verify the def index for early clobbers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159039 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 22:23:58 +00:00
Chad Rosier
670712ca3f
Whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159035 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 22:07:19 +00:00
Jakob Stoklund Olesen
bfd752f310
Delete a boring statistic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159030 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 20:40:15 +00:00
Jakob Stoklund Olesen
7fa6784296
Store live intervals in an IndexedMap.
...
It is both smaller and faster than DenseMap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159029 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 20:37:52 +00:00
Hal Finkel
b460a33829
Revert r158679 - use case is unclear (and it increases the memory footprint).
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159027 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 20:27:13 +00:00
Evan Cheng
c90a1fcf9f
EmitZerofill should take a 64-bit size or else it's chopping off large zero-filled global. rdar://11729134
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159023 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 20:14:46 +00:00
Jakob Stoklund Olesen
04ce06dc4c
Fix a crash in --debug code.
...
Don't try to print out the live range of a physreg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159021 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 19:51:41 +00:00
Jakob Stoklund Olesen
b150930910
Don't depend on live ranges being present.
...
DBG_VALUE instructions could be referring to non-existing virtual
registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159020 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 18:51:35 +00:00
Jakob Stoklund Olesen
e024874d22
Simplify handleMove() a bit.
...
There is no need to check for physreg live ranges. They don't exist any
more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159019 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 18:38:57 +00:00
Jakob Stoklund Olesen
27b7669a60
Stop computing physreg live ranges.
...
Everyone is using on-demand regunit ranges now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159018 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 18:20:50 +00:00
Jakob Stoklund Olesen
e6d2114405
Remove some redundant LIS->hasInterval() checks.
...
These functions only operate on virtual registers now, and they all have
live ranges.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159015 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 17:49:44 +00:00
Jakob Stoklund Olesen
834a9cdbb7
Use MRI::isConstantPhysReg() to check remat feasibility.
...
Don't depend on LiveIntervals::hasInterval() to determine if a physreg
is reserved and constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159013 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 17:31:01 +00:00
Jakob Stoklund Olesen
e8a0a12864
Use regunit liveness to guide LiveDebugVariables.
...
This should produce the same results as using physreg liveness directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159009 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 17:15:32 +00:00
Jakob Stoklund Olesen
241d0209a7
Remove LiveIntervals::trackingRegUnits().
...
With regunit liveness permanently enabled, this function would always
return true.
Also remove now obsolete code for checking physreg interference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159006 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 16:46:44 +00:00
Jakob Stoklund Olesen
7ee3ca10f5
Revert remaining part of r93200: "Disable folding sext(trunc(x)) -> x"
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159003 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 16:36:43 +00:00
Nuno Lopes
d845c34170
simplify code from previous commits (Thanks Duncan)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158999 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 15:50:53 +00:00
Stepan Dyatkovskiy
43c3a4a7e7
Fixed r158979.
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158997 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 14:53:30 +00:00
Rafael Espindola
9cfc799171
Remove another duplicated variable. We only need one to tell us if the linker
...
knows dwarf or not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158993 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 13:32:49 +00:00
Rafael Espindola
2241e51406
Fix a FIXME: DwarfRequiresRelocationForSectionOffset is the same as
...
DwarfUsesRelocationsAcrossSections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158992 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 13:24:07 +00:00
Duncan Sands
37eeb058a3
Revert commit 158979 (dyatkovskiy) since it is causing several buildbots to
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158986 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-22 10:35:06 +00:00