Dale Johannesen
e51c5296a6
Allow SROA of vectors. Removing this caused a
...
huge performance regression in something we care
about. This may not be final fix.
llvm-svn: 58718
2008-11-04 20:54:03 +00:00
Dale Johannesen
eee3a8a2e0
80 columns
...
llvm-svn: 58717
2008-11-04 20:52:49 +00:00
Evan Cheng
45496b349f
Custom lower bit_convert i64 -> f64 into FMDRR. This is now happening with legalizetypes.
...
llvm-svn: 58714
2008-11-04 19:57:48 +00:00
Tanya Lattner
775d919c49
Add note about cmake. Patch by Oscar Fuentes.
...
llvm-svn: 58712
2008-11-04 18:40:27 +00:00
Dan Gohman
171432bfe1
Give tablegen's Type a destructor, to suppress spurious
...
"Type has virtual functions but non-virtual destructor"
warnings.
llvm-svn: 58710
2008-11-04 18:09:07 +00:00
Duncan Sands
aed2dfe3f6
Fix typo. Patch by nlewycky.
...
llvm-svn: 58709
2008-11-04 18:05:30 +00:00
Evan Cheng
d63b7563b7
Debug output tweak.
...
llvm-svn: 58708
2008-11-04 17:58:53 +00:00
Evan Cheng
088f7c51a4
LDM_RET restores pc, do not set 's' bit which would restore CPSR from SPSR.
...
llvm-svn: 58707
2008-11-04 17:57:07 +00:00
Duncan Sands
58ebf09772
Fix PR3011: LegalizeTypes support for scalarizing
...
SELECT_CC.
llvm-svn: 58706
2008-11-04 17:31:08 +00:00
Dan Gohman
50183113b9
Duncan pointed out that the Extended case in getTypeForMVT could
...
be considerably simplified.
llvm-svn: 58703
2008-11-04 16:19:44 +00:00
Dan Gohman
13237dda2d
Add a return statement to suppress warnings in NDEBUG builds.
...
llvm-svn: 58702
2008-11-04 16:08:57 +00:00
Dan Gohman
2dff90b025
Add some asserts to verify MVT invariant assumptions.
...
llvm-svn: 58701
2008-11-04 16:03:56 +00:00
Nuno Lopes
b16d9bd0c3
regenerate
...
llvm-svn: 58697
2008-11-04 14:43:20 +00:00
Nuno Lopes
064bb29c9d
fix leakage of APFloats in getExistingVal()
...
llvm-svn: 58696
2008-11-04 14:42:19 +00:00
Nuno Lopes
8499bc5e1d
regenerate
...
llvm-svn: 58694
2008-11-04 14:28:33 +00:00
Nuno Lopes
5caf466051
fix leakage of APSInt in getVal()
...
llvm-svn: 58693
2008-11-04 14:26:58 +00:00
Nuno Lopes
0995eae6b8
fix leakage of IfcvtTokens
...
llvm-svn: 58690
2008-11-04 13:02:59 +00:00
Evan Cheng
28e234a959
For some targets, it's not possible to place GVs in the same memory buffer as the MachineCodeEmitter allocated memory. Code and data has different read / write / execution privilege requirements.
...
This is a short term workaround. The current solution is for the JIT memory manager to manage code and data memory separately.
llvm-svn: 58688
2008-11-04 09:30:48 +00:00
Nick Lewycky
1fc44bd56f
Don't "shell out" to resolve paths. Using pure perl makes llvm-config
...
friendlier to non-Unixes that happen to have perl. Patch from Sascha Othman!
llvm-svn: 58687
2008-11-04 08:05:21 +00:00
Evan Cheng
7847f4f030
80 col violation.
...
llvm-svn: 58684
2008-11-04 06:10:31 +00:00
Evan Cheng
f15a9cfb31
Stylistic change.
...
llvm-svn: 58683
2008-11-04 06:10:06 +00:00
Evan Cheng
0369860450
hasDisassembler should return false if disassembler isn't available.
...
llvm-svn: 58682
2008-11-04 06:09:38 +00:00
Oscar Fuentes
582a9fcc48
CMakeLists: removed asmprinter component from
...
tools/llc/CMakeLists.txt.
llvm-svn: 58678
2008-11-04 03:28:37 +00:00
Oscar Fuentes
8e964f2e6f
CMake: Support for building 32 bit mode libs and binaries on
...
Linux/x86-64.
llvm-svn: 58677
2008-11-04 03:27:24 +00:00
Oscar Fuentes
9f6d4e7fb0
CMake: Updated list of source files.
...
llvm-svn: 58676
2008-11-04 03:24:04 +00:00
Bill Wendling
0f3f36688b
Initial checkin for stack protectors. Here's what it does:
...
* The prologue is modified to read the __stack_chk_guard global and insert it
onto the stack.
* The epilogue is modified to read the stored guard from the stack and compare
it to the original __stack_chk_guard value. If they differ, then the
__stack_chk_fail() function is called.
* The stack protector needs to be first on the stack (after the parameters) to
catch any stack-smashing activities.
Front-end support will follow after a round of beta testing.
llvm-svn: 58673
2008-11-04 02:10:20 +00:00
Evan Cheng
f117632c3f
Handle ARM machine constantpool entries.
...
llvm-svn: 58671
2008-11-04 00:50:32 +00:00
Dan Gohman
0ba8aad1af
The ANDMask node folds to a constant, and isn't the node that needs to
...
have its node id set. The new and and shift nodes are the nodes that need
the IDs. This fixes PR2982.
llvm-svn: 58655
2008-11-03 23:43:55 +00:00
Devang Patel
09aea7e93e
Fix unused variable warnings.
...
llvm-svn: 58653
2008-11-03 23:20:04 +00:00
Devang Patel
40cfcf7ce2
Fix unused variable warnings.
...
llvm-svn: 58651
2008-11-03 23:14:09 +00:00
Dan Gohman
3258c45d0f
Add C bindings for extractvalue and insertvalue. Patch by Frits van Bommel!
...
llvm-svn: 58650
2008-11-03 22:55:43 +00:00
Evan Cheng
999398c004
Remove a dead switch statement.
...
llvm-svn: 58644
2008-11-03 21:26:52 +00:00
Evan Cheng
b3fd30ed7c
Minor code restructuring. No functionality change.
...
llvm-svn: 58643
2008-11-03 21:02:39 +00:00
Dale Johannesen
d9906b90d0
Fix some ppcf128 regressions: make ExpandFloatRes_LOAD
...
work correctly, and bring over a late change to ppcf128
SetCC handling.
llvm-svn: 58642
2008-11-03 20:47:45 +00:00
Duncan Sands
8a94be8c5b
Make VAARG promotion work correctly with large funky
...
sized integers like i129, and also reduce the number
of assumptions made about how vaarg is implemented.
This still doesn't work correctly for small integers
like (eg) i1 on x86, since x86 passes each of them
(essentially an i8) in a 4 byte stack slot, so the
pointer needs to be advanced by 4 bytes not by 1 byte
as now. But this is no longer a LegalizeTypes problem
(it was also wrong in LT before): it is a bug in the
operation expansion in LegalizeDAG: now LegalizeTypes
turns an i1 vaarg into an i8 vaarg which would work
fine if only the i8 vaarg was turned into correct code
later.
llvm-svn: 58635
2008-11-03 20:22:12 +00:00
Dan Gohman
1532a1621c
Overload AddInteger on int/long/long long instead of on int/int64_t,
...
to avoid overload ambiguities. This fixes build errors introduced
by r58623.
llvm-svn: 58632
2008-11-03 19:40:18 +00:00
Devang Patel
c959b4dbd3
Ignore conditions that are outside the loop.
...
llvm-svn: 58631
2008-11-03 19:38:07 +00:00
Andrew Lenharth
97343f0e8b
add a period at the end of the comment, ignoring the fact that the comment would be hard pressed to be considered a sentence, but if it makes Bill happy...
...
llvm-svn: 58630
2008-11-03 19:29:29 +00:00
Jim Grosbach
5262898365
Add binary encoding support for multiply instructions. Some blanks left to fill in, but the basics are there.
...
llvm-svn: 58626
2008-11-03 18:38:31 +00:00
Devang Patel
78b7de25d1
Turn floating point IVs into integer IVs where possible.
...
This allows SCEV users to effectively calculate trip count.
LSR later on transforms back integer IVs to floating point IVs
later on to avoid int-to-float casts inside the loop.
llvm-svn: 58625
2008-11-03 18:32:19 +00:00
Dan Gohman
155df8a79e
Refactor various TargetAsmInfo subclasses' TargetMachine members away
...
adding a TargetMachine member to the base TargetAsmInfo class instead.
llvm-svn: 58624
2008-11-03 18:22:42 +00:00
Dan Gohman
edf3dc97c2
Change how extended types are represented in MVTs. Instead of fiddling
...
bits, use a union of a SimpleValueType enum and a regular Type*.
This increases the size of MVT on 64-bit hosts from 32 bits to 64 bits.
In most cases, this doesn't add significant overhead. There are places
in codegen that use arrays of MVTs, so these are now larger, but
they're small in common cases.
This eliminates restrictions on the size of integer types and vector
types that can be represented in codegen. As the included testcase
demonstrates, it's now possible to codegen very large add operations.
There are still some complications with using very large types. PR2880
is still open so they can't be used as return values on normal targets,
there are no libcalls defined for very large integers so operations
like multiply and divide aren't supported.
This also introduces a minimal tablgen Type library, capable of
handling IntegerType and VectorType. This will allow parts of
TableGen that don't depend on using SimpleValueType values to handle
arbitrary integer and vector types.
llvm-svn: 58623
2008-11-03 17:56:27 +00:00
Daniel Dunbar
cd663da6ec
Comment fix.
...
llvm-svn: 58621
2008-11-03 17:33:36 +00:00
Dan Gohman
2c6be1710e
Remove redundant inline keywords from functions defined within
...
class definitions.
llvm-svn: 58620
2008-11-03 17:10:24 +00:00
Andrew Lenharth
312c00cdd4
Ensure that we are checking only calls to the function we are interested in specializing
...
llvm-svn: 58615
2008-11-03 16:05:35 +00:00
Anton Korobeynikov
4b194f9aac
Testcase for recent llvm-gcc fix
...
llvm-svn: 58611
2008-11-03 14:43:31 +00:00
Duncan Sands
a9047944bc
Make VAARG work with x86 long double (which is
...
10 bytes long, but is passed in 12/16 bytes).
llvm-svn: 58608
2008-11-03 11:51:11 +00:00
Matthijs Kooijman
a91b759ccf
Make MachineFrameInfo::print not crash when no TargetFrameInfo is available.
...
llvm-svn: 58606
2008-11-03 11:16:43 +00:00
Evan Cheng
45516a94c1
Silence a compiler warning.
...
llvm-svn: 58598
2008-11-03 07:14:02 +00:00
Nick Lewycky
3315ae6e08
Typo
...
llvm-svn: 58594
2008-11-03 03:50:40 +00:00