Devang Patel
7e7fa83f6e
Print variable's display name in dwarf DIE.
...
llvm-svn: 65468
2009-02-25 19:41:35 +00:00
Chris Lattner
af618171f4
Fix PR3667
...
llvm-svn: 65464
2009-02-25 18:20:01 +00:00
Duncan Sands
c642e53b8c
Check that records with a known constant size are not
...
copied field by LLVM field if the record has a variable
sized field in it. The problem is that the LLVM field
will not completely cover the variable sized gcc field.
llvm-svn: 65463
2009-02-25 18:10:49 +00:00
Zhou Sheng
5d9cc1763b
Don't block basic block with only SwitchInst to fold into predecessors.
...
llvm-svn: 65456
2009-02-25 15:34:27 +00:00
Duncan Sands
d34bf76bd1
Flesh out the Ada section a little.
...
llvm-svn: 65448
2009-02-25 11:59:06 +00:00
Duncan Sands
3aa3673f5b
The C backend does not support arbitrary precision integers.
...
llvm-svn: 65447
2009-02-25 11:51:54 +00:00
Duncan Sands
966fd26c83
Note on new type legalizer.
...
llvm-svn: 65446
2009-02-25 11:50:08 +00:00
Duncan Sands
d9c3557fcc
Add note on support for arbitrary precision integers.
...
llvm-svn: 65445
2009-02-25 11:37:39 +00:00
Chris Lattner
3ab27b75a7
more notes.
...
llvm-svn: 65439
2009-02-25 07:32:53 +00:00
Evan Cheng
86673f2806
Clean up dwarf writer, part 1. This eliminated the horrible recursive getGlobalVariablesUsing and replaced it something readable. It eliminated use of slow UniqueVector and replaced it with StringMap, SmallVector, and DenseMap, etc. It also fixed some non-deterministic behavior.
...
This is a very minor compile time win.
llvm-svn: 65438
2009-02-25 07:04:34 +00:00
Nick Lewycky
5c10a3aa7f
Add a totally synthetic situation I came up with while looking at a bug in
...
related code.
llvm-svn: 65437
2009-02-25 06:52:48 +00:00
Chris Lattner
d02da04564
random notes
...
llvm-svn: 65436
2009-02-25 06:34:50 +00:00
Nick Lewycky
2db07614e7
Recommend against using Gold to build LLVM.
...
llvm-svn: 65435
2009-02-25 06:29:47 +00:00
Chris Lattner
b39faaa57e
don't know if there is a vmkit release to match 2.5
...
llvm-svn: 65434
2009-02-25 05:45:05 +00:00
Chris Lattner
f70a024c43
update clang section
...
llvm-svn: 65430
2009-02-25 05:09:54 +00:00
Chris Lattner
7fad44b004
rip out llvm 2.4 details to make room for 2.5
...
llvm-svn: 65429
2009-02-25 04:41:31 +00:00
Scott Michel
e2fdc31759
Expand tabs to spaces (overlooked in previous commit)
...
llvm-svn: 65427
2009-02-25 03:57:49 +00:00
Scott Michel
bb878288cb
Remove all "cached" data from BuildVectorSDNode, preferring to retrieve
...
results via reference parameters.
This patch also appears to fix Evan's reported problem supplied as a
reduced bugpoint test case.
llvm-svn: 65426
2009-02-25 03:12:50 +00:00
Mon P Wang
b402493161
Added support to have TableGen provide information if an intrinsic (core
...
or target) can be overloaded or not.
llvm-svn: 65404
2009-02-24 23:17:49 +00:00
Devang Patel
0c83e84f40
If compile unit's language is not set then don't crash while dump'ing compile unit.
...
llvm-svn: 65402
2009-02-24 23:15:09 +00:00
Daniel Dunbar
5bf00893b6
Extension of GEP in constant folder was broken (apparently this code
...
has never been run!).
- Sorry, don't know how to make an LLVM test case for this.
llvm-svn: 65383
2009-02-24 19:10:46 +00:00
Dan Gohman
0bddac16a8
Rename ScalarEvolution's getIterationCount to getBackedgeTakenCount,
...
to more accurately describe what it does. Expand its doxygen comment
to describe what the backedge-taken count is and how it differs
from the actual iteration count of the loop. Adjust names and
comments in associated code accordingly.
llvm-svn: 65382
2009-02-24 18:55:53 +00:00
Bill Wendling
c5437ea429
Overhaul my earlier submission due to feedback. It's a large patch, but most of
...
them are generic changes.
- Use the "fast" flag that's already being passed into the asm printers instead
of shoving it into the DwarfWriter.
- Instead of calling "MI->getParent()->getParent()" for every MI, set the
machine function when calling "runOnMachineFunction" in the asm printers.
llvm-svn: 65379
2009-02-24 08:30:20 +00:00
Owen Anderson
0fb12efbc1
Add a debugging option for SSC DCE.
...
llvm-svn: 65375
2009-02-24 05:44:18 +00:00
Bill Wendling
786c5973f7
- Use the "Fast" flag instead of "OptimizeForSize" to determine whether to emit
...
a DBG_LABEL or not. We want to fall back to the original way of emitting debug
info when we're in -O0/-fast mode.
- Add plumbing in to pass the "Fast" flag to places that need it.
- XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I
need to investigate still.
llvm-svn: 65367
2009-02-24 02:35:30 +00:00
Dan Gohman
3204dac652
Add a testcase for the problem fixed in r65289.
...
llvm-svn: 65365
2009-02-24 02:17:42 +00:00
Dan Gohman
4f356bb9b0
Fix a ValueTracking rule: RHS means operand 1, not 0. Add a simple
...
ashr instcombine to help expose this code. And apply the fix to
SelectionDAG's copy of this code too.
llvm-svn: 65364
2009-02-24 02:00:40 +00:00
Dan Gohman
5d1f458f0f
Generalize the ChangeCompareStride code, in preparation for
...
handling non-constant strides. No functionality change.
llvm-svn: 65363
2009-02-24 01:58:00 +00:00
Dan Gohman
e669884749
Preserve the DominanceFrontier analysis in the LoopDeletion pass.
...
llvm-svn: 65359
2009-02-24 01:21:53 +00:00
Devang Patel
50c6324119
gdb uses DW_AT_prototyped to identify K&R style in C based languages.
...
This fixes objc.dg/dwarf-prototypes.m scan-assembler DW_AT_prototyped from llvmgcc42 test suite.
llvm-svn: 65357
2009-02-24 00:52:19 +00:00
Bill Wendling
98bac99265
Un-XFAIL this test.
...
llvm-svn: 65355
2009-02-24 00:37:28 +00:00
Devang Patel
e288082644
While folding unconditional return move DbgRegionEndInst into the predecessor, instead of removing it. This fixes following tests from llvmgcc42 testsuite.
...
gcc.c-torture/execute/20000605-3.c
gcc.c-torture/execute/20020619-1.c
gcc.c-torture/execute/20030920-1.c
gcc.c-torture/execute/loop-ivopts-1.c
llvm-svn: 65353
2009-02-24 00:05:16 +00:00
Devang Patel
6ced076e4c
If there is not any debug info available for any global variables and any subprograms then there is not any debug info to emit.
...
llvm-svn: 65352
2009-02-24 00:02:15 +00:00
Dan Gohman
f6e8c77e1c
Back out the change in 64918 that used sign-extensions when promoting
...
trip counts that use signed comparisons. It's not obviously the best
approach for preserving trip count information, and at any rate there
isn't anything in the tree right now that makes use of that, so for
now always using zero-extensions is preferable.
llvm-svn: 65347
2009-02-23 23:20:35 +00:00
Dan Gohman
318d7376ba
Fast-isel can't do TLS yet, so it should fall back to SDISel
...
if it sees TLS addresses.
llvm-svn: 65341
2009-02-23 22:03:08 +00:00
Ted Kremenek
7df3a5aec3
Correctly implement ImmutableMap::getMaxElement() by getting the actual <key, value> pair.
...
llvm-svn: 65327
2009-02-23 17:28:16 +00:00
Ted Kremenek
e60504d210
Add ImmutableMap::getMaxElement(), a method that returns the <key,value> pair in a ImmutableMap that has the highest ranked key.
...
llvm-svn: 65326
2009-02-23 17:27:18 +00:00
Dan Gohman
e591411fd6
LoopDeletion needs to inform ScalarEvolution when a loop is deleted,
...
so that ScalarEvolution doesn't hang onto a dangling Loop*, which
could be a problem if another Loop happens to get allocated at the
same address.
llvm-svn: 65323
2009-02-23 17:10:29 +00:00
Dan Gohman
0fd45016c2
Use the -stack-alignment option instead of using a target triple
...
for avoiding dynamic stack realignment.
llvm-svn: 65319
2009-02-23 16:34:46 +00:00
Dan Gohman
42987f528a
IndVarSimplify preserves ScalarEvolution. In the
...
-std-compile-opts sequence, this avoids the need for ScalarEvolution to
be rerun before LoopDeletion.
llvm-svn: 65318
2009-02-23 16:29:41 +00:00
Zhou Sheng
7c528e95af
Add test case for checkin @r65314.
...
llvm-svn: 65315
2009-02-23 10:15:04 +00:00
Zhou Sheng
3a86bcf134
Should reset DBI_Prev if DBI_Next == 0.
...
llvm-svn: 65314
2009-02-23 10:14:11 +00:00
Evan Cheng
9f8fddeed8
Only v1i16 (i.e. _m64) is returned via RAX / RDX.
...
llvm-svn: 65313
2009-02-23 09:03:22 +00:00
Nate Begeman
9af0d0c97e
Make this test use darwin targe triple, to avoid stack traffic on linux.
...
llvm-svn: 65312
2009-02-23 09:03:06 +00:00
Nate Begeman
e684da3e5d
Generate better code for v8i16 shuffles on SSE2
...
Generate better code for v16i8 shuffles on SSE2 (avoids stack)
Generate pshufb for v8i16 and v16i8 shuffles on SSSE3 where it is fewer uops.
Document the shuffle matching logic and add some FIXMEs for later further
cleanups.
New tests that test the above.
Examples:
New:
_shuf2:
pextrw $7, %xmm0, %eax
punpcklqdq %xmm1, %xmm0
pshuflw $128, %xmm0, %xmm0
pinsrw $2, %eax, %xmm0
Old:
_shuf2:
pextrw $2, %xmm0, %eax
pextrw $7, %xmm0, %ecx
pinsrw $2, %ecx, %xmm0
pinsrw $3, %eax, %xmm0
movd %xmm1, %eax
pinsrw $4, %eax, %xmm0
ret
=========
New:
_shuf4:
punpcklqdq %xmm1, %xmm0
pshufb LCPI1_0, %xmm0
Old:
_shuf4:
pextrw $3, %xmm0, %eax
movsd %xmm1, %xmm0
pextrw $3, %xmm1, %ecx
pinsrw $4, %ecx, %xmm0
pinsrw $5, %eax, %xmm0
========
New:
_shuf1:
pushl %ebx
pushl %edi
pushl %esi
pextrw $1, %xmm0, %eax
rolw $8, %ax
movd %xmm0, %ecx
rolw $8, %cx
pextrw $5, %xmm0, %edx
pextrw $4, %xmm0, %esi
pextrw $3, %xmm0, %edi
pextrw $2, %xmm0, %ebx
movaps %xmm0, %xmm1
pinsrw $0, %ecx, %xmm1
pinsrw $1, %eax, %xmm1
rolw $8, %bx
pinsrw $2, %ebx, %xmm1
rolw $8, %di
pinsrw $3, %edi, %xmm1
rolw $8, %si
pinsrw $4, %esi, %xmm1
rolw $8, %dx
pinsrw $5, %edx, %xmm1
pextrw $7, %xmm0, %eax
rolw $8, %ax
movaps %xmm1, %xmm0
pinsrw $7, %eax, %xmm0
popl %esi
popl %edi
popl %ebx
ret
Old:
_shuf1:
subl $252, %esp
movaps %xmm0, (%esp)
movaps %xmm0, 16(%esp)
movaps %xmm0, 32(%esp)
movaps %xmm0, 48(%esp)
movaps %xmm0, 64(%esp)
movaps %xmm0, 80(%esp)
movaps %xmm0, 96(%esp)
movaps %xmm0, 224(%esp)
movaps %xmm0, 208(%esp)
movaps %xmm0, 192(%esp)
movaps %xmm0, 176(%esp)
movaps %xmm0, 160(%esp)
movaps %xmm0, 144(%esp)
movaps %xmm0, 128(%esp)
movaps %xmm0, 112(%esp)
movzbl 14(%esp), %eax
movd %eax, %xmm1
movzbl 22(%esp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2
movzbl 42(%esp), %eax
movd %eax, %xmm1
movzbl 50(%esp), %eax
movd %eax, %xmm3
punpcklbw %xmm1, %xmm3
punpcklbw %xmm2, %xmm3
movzbl 77(%esp), %eax
movd %eax, %xmm1
movzbl 84(%esp), %eax
movd %eax, %xmm2
punpcklbw %xmm1, %xmm2
movzbl 104(%esp), %eax
movd %eax, %xmm1
punpcklbw %xmm1, %xmm0
punpcklbw %xmm2, %xmm0
movaps %xmm0, %xmm1
punpcklbw %xmm3, %xmm1
movzbl 127(%esp), %eax
movd %eax, %xmm0
movzbl 135(%esp), %eax
movd %eax, %xmm2
punpcklbw %xmm0, %xmm2
movzbl 155(%esp), %eax
movd %eax, %xmm0
movzbl 163(%esp), %eax
movd %eax, %xmm3
punpcklbw %xmm0, %xmm3
punpcklbw %xmm2, %xmm3
movzbl 188(%esp), %eax
movd %eax, %xmm0
movzbl 197(%esp), %eax
movd %eax, %xmm2
punpcklbw %xmm0, %xmm2
movzbl 217(%esp), %eax
movd %eax, %xmm4
movzbl 225(%esp), %eax
movd %eax, %xmm0
punpcklbw %xmm4, %xmm0
punpcklbw %xmm2, %xmm0
punpcklbw %xmm3, %xmm0
punpcklbw %xmm1, %xmm0
addl $252, %esp
ret
llvm-svn: 65311
2009-02-23 08:49:38 +00:00
Nick Lewycky
fc684c0c83
If nobody minds, I'm using LTO to produce faster binaries. Switch fast codegen
...
off in libLTO.
llvm-svn: 65310
2009-02-23 07:41:55 +00:00
Mon P Wang
dccfa0b26c
Changed option name from inline-threshold to basic-inline-threshold because
...
inline-threshold option is used by the inliner.
llvm-svn: 65309
2009-02-23 07:07:56 +00:00
Chris Lattner
d5420f0957
fix some typos that Duncan noticed
...
llvm-svn: 65306
2009-02-23 05:56:17 +00:00
Bill Wendling
9ee052bcdc
Propagate debug loc info through prologue/epilogue.
...
llvm-svn: 65298
2009-02-23 00:42:30 +00:00
Scott Michel
9d31aca679
Introduce the BuildVectorSDNode class that encapsulates the ISD::BUILD_VECTOR
...
instruction. The class also consolidates the code for detecting constant
splats that's shared across PowerPC and the CellSPU backends (and might be
useful for other backends.) Also introduces SelectionDAG::getBUID_VECTOR() for
generating new BUILD_VECTOR nodes.
llvm-svn: 65296
2009-02-22 23:36:09 +00:00
Nick Lewycky
338d07e94e
Add an option to the gold plugin to make it emit a file with the public api
...
list that can in turn be passed to -internalize pass through
-internalize-public-api-file.
Pass gold -plugin-opt=generate-api-file to produce "apifile.txt" in the current
directory.
llvm-svn: 65295
2009-02-22 22:15:44 +00:00
Dan Gohman
648c5e9c99
Revert the part of 64623 that attempted to align the source in a
...
memcpy to match the alignment of the destination. It isn't necessary
for making loads and stores handled like the SSE loadu/storeu
intrinsics, and it was causing a performance regression in
MultiSource/Applications/JM/lencod.
The problem appears to have been a memcpy that copies from some
highly aligned array into an alloca; the alloca was then being
assigned a large alignment, which required codegen to perform
dynamic stack-pointer re-alignment, which forced the enclosing
function to have a frame pointer, which led to increased spilling.
llvm-svn: 65289
2009-02-22 18:06:32 +00:00
Dan Gohman
f394e58af5
Properly parenthesize this expression, fixing a real bug in the new
...
-full-lsr code, as well as a GCC warning.
llvm-svn: 65288
2009-02-22 16:40:52 +00:00
Richard Pennington
d853864705
bug 3610: Test case.
...
llvm-svn: 65287
2009-02-22 15:54:44 +00:00
Evan Cheng
e779595af0
If a use operand is marked isKill, don't forget to add kill to its live interval as well.
...
llvm-svn: 65279
2009-02-22 08:35:56 +00:00
Evan Cheng
2448aa1d8d
Add a note.
...
llvm-svn: 65275
2009-02-22 08:13:45 +00:00
Evan Cheng
e4ffc030e2
Be bug compatible with gcc by returning MMX values in RAX.
...
llvm-svn: 65274
2009-02-22 08:05:12 +00:00
Evan Cheng
91193c0094
Do not consider MMX_MOVD64rr a move instructions. The source register is in GR32, the destination is VR64. They are not compatible.
...
llvm-svn: 65273
2009-02-22 08:04:23 +00:00
Evan Cheng
69decbf0b2
Only try to sink immediate when TLI is not null. It needs to check if immediate would fit in target addressing field.
...
llvm-svn: 65268
2009-02-22 07:31:19 +00:00
Nick Lewycky
ed98a50358
Regenerate.
...
llvm-svn: 65250
2009-02-21 22:38:49 +00:00
Nick Lewycky
ff8e6dd009
Remove tests for flex/bison which are no longer needed by LLVM.
...
llvm-svn: 65249
2009-02-21 22:36:26 +00:00
Nick Lewycky
d44e80d7fc
Don't sign extend the char when expanding char -> int during
...
load(bitcast(char[4] to i32*)) evaluation.
llvm-svn: 65246
2009-02-21 20:50:42 +00:00
Daniel Dunbar
0094e341d0
Add makefile debugging target; use "make print-FOO" to print the
...
value/definition/origin of FOO.
llvm-svn: 65245
2009-02-21 20:42:39 +00:00
Richard Pennington
99f6d7c9fc
bug 3610: Floating point vaarg not softened.
...
llvm-svn: 65239
2009-02-21 19:11:18 +00:00
Ted Kremenek
c9c50bfc31
Add version of StringsEqualNoCase that takes two null-terminated C-strings and compares up to 'len' characters. I tend to screw up string comparison functions, so anyone who is interested please review this\!
...
llvm-svn: 65236
2009-02-21 18:25:30 +00:00
Anton Korobeynikov
42aae86590
Drop bunch of half-working stuff in the ext_weak linkage support.
...
Now we're using one gross, but quite robust hack :) (previous ones
did not work, for example, when ext_weak symbol was used deep inside
constant expression in the initializer).
The proper fix of this problem will require some quite huge asmprinter
changes and that's why was postponed. This fixes PR3629 by the way :)
llvm-svn: 65230
2009-02-21 11:53:32 +00:00
Nick Lewycky
9e5ed6d329
Pass different flags on different platforms when building PIC.
...
llvm-svn: 65229
2009-02-21 08:41:09 +00:00
Evan Cheng
1173ec7a2e
Add AddrModeMatcher.cpp
...
llvm-svn: 65228
2009-02-21 07:05:11 +00:00
Evan Cheng
34806b1fa4
If two-address def is dead and the instruction does not define other registers, and it doesn't produce side effects, just delete the instruction.
...
llvm-svn: 65218
2009-02-21 03:14:25 +00:00
Evan Cheng
107b06c4b9
Teach LSR sink to sink the immediate portion of the common expression back into uses if they fit in address modes of all the uses.
...
llvm-svn: 65215
2009-02-21 02:06:47 +00:00
Bill Wendling
82aa14fae8
Make sure this doesn't access .end() too.
...
llvm-svn: 65213
2009-02-21 01:11:36 +00:00
Gabor Greif
6f26131316
fix and clean up a comment
...
llvm-svn: 65212
2009-02-21 01:09:07 +00:00
Bill Wendling
81ebf9a578
Make sure we don't dereference the .end() of the container.
...
llvm-svn: 65211
2009-02-21 01:07:26 +00:00
Chris Lattner
bef6b2098e
rename a function to indicate that it checks for profitability as well
...
as legality. Make load sinking and gep sinking more careful: we only
do it when it won't pessimize loads from the stack. This has the added
benefit of not producing code that is unanalyzable to SROA.
llvm-svn: 65209
2009-02-21 00:46:50 +00:00
Bill Wendling
56759ee658
Propagate more debug loc infos. This also includes some code cleaning.
...
llvm-svn: 65207
2009-02-21 00:43:56 +00:00
Bill Wendling
5191934371
We need to propagate the debug location information even when dealing with the
...
prologue/epilogue.
llvm-svn: 65206
2009-02-21 00:32:08 +00:00
Misha Brukman
0f35659b9a
* Fixed spelling
...
* Linters now return their information instead of printing it, to
enable easier unittesting
* Added support for finding tabs in files, added to C++ linter
llvm-svn: 65202
2009-02-20 23:44:54 +00:00
Dan Gohman
e7fe80fcf9
Fix a bug that David Greene found in the DAGCombiner's logic
...
that checks whether it's safe to transform a store of a bitcast
value into a store of the original value.
llvm-svn: 65201
2009-02-20 23:29:13 +00:00
Misha Brukman
9e6fb74027
Removed trailing whitespace.
...
llvm-svn: 65199
2009-02-20 23:04:06 +00:00
Misha Brukman
e739d19156
Removed trailing whitespace.
...
llvm-svn: 65197
2009-02-20 22:54:36 +00:00
Misha Brukman
fb658aa870
Removed trailing whitespace.
...
llvm-svn: 65196
2009-02-20 22:51:36 +00:00
Misha Brukman
5e5503f5da
Keep the newline character at the end of the lines whose trailing whitespace we
...
are deleting; otherwise, everything ends up on a single line.
llvm-svn: 65185
2009-02-20 22:30:46 +00:00
Misha Brukman
f2e5bd8d22
Only strip the newline character at the end of the lines that we're considering
...
for length and for trailing whitespace; otherwise, the whitespace themselves
will also be removed.
llvm-svn: 65182
2009-02-20 22:28:45 +00:00
Misha Brukman
42afb619c6
Fixed lint errors:
...
* Alphabetized #includes
* Removed trailing whitespace
* Wrapped or shortened lines over 80 chars
llvm-svn: 65181
2009-02-20 22:20:18 +00:00
Bill Wendling
4d38d7272e
We have logic in there to emit a default debugging label at the beginning of a
...
function. Emitting another label after the prologue messes up the debugging. We
are doing that because the first DebugLoc object it sees is different from the
previous, which was nothing. Check for this situation, and don't emit one if
it's the first.
llvm-svn: 65180
2009-02-20 22:19:20 +00:00
Evan Cheng
8a9481d50d
Fix strange logic in CollectIVUsers used to determine whether all uses are
...
addresses, part 1. This fixes an obvious logic bug. Previously if the only
in-loop use is a PHI, it would return AllUsesAreAddresses as true.
llvm-svn: 65178
2009-02-20 22:16:49 +00:00
Dan Gohman
5e309a5bbb
Simplify code and reduce indentation. No functionality change.
...
llvm-svn: 65167
2009-02-20 21:27:23 +00:00
Dan Gohman
2c8cb5b4ec
Fix 80-column violations.
...
llvm-svn: 65159
2009-02-20 21:06:57 +00:00
Dan Gohman
addc50b4ee
It's not necessary to check if Base is null here.
...
llvm-svn: 65157
2009-02-20 21:05:23 +00:00
Evan Cheng
2a9bad5ac1
Support return of MMX values in 64-bit mode.
...
llvm-svn: 65152
2009-02-20 20:43:02 +00:00
Bill Wendling
2343339644
- Early exit a nested block.
...
- Correct comment.
- Whitespace changes.
llvm-svn: 65149
2009-02-20 20:40:28 +00:00
Dan Gohman
1608df5319
Add a comment about how Imm can be used for loop-variant values.
...
llvm-svn: 65147
2009-02-20 20:29:04 +00:00
Torok Edwin
87d5ca083b
add note about sin
...
llvm-svn: 65137
2009-02-20 18:42:06 +00:00
Evan Cheng
c380864d2c
Factor address mode matcher out of codegen prepare to make it available to other passes, e.g. loop strength reduction.
...
llvm-svn: 65134
2009-02-20 18:24:38 +00:00
Zhou Sheng
053737e1ae
Just roll back the previous change to -mem2reg.
...
Will re-think about this according to Chris's comments.
llvm-svn: 65126
2009-02-20 17:49:33 +00:00
Zhou Sheng
6a0634d423
patch to update the line number information in pass -mem2reg.
...
Currently this pass will delete the variable declaration info,
and keep the line number info. But the kept line number info is not updated,
and some is redundant or not correct, this patch just updates those info.
llvm-svn: 65123
2009-02-20 16:31:35 +00:00
Owen Anderson
f13820148b
Fix a crash in the pre-alloc splitter exposed by recent codegen changes.
...
llvm-svn: 65121
2009-02-20 10:02:23 +00:00
Owen Anderson
81db491b7f
Add a quick pass to the stack slot colorer to eliminate some trivially redundant spills after coloring.
...
Ideally these would never get created in the first place, but until we enhance the spiller to have a more
global picture of what's happening, this is necessary for code quality in some circumstances.
llvm-svn: 65120
2009-02-20 09:11:36 +00:00
Chris Lattner
52e8d4cc5d
make these tests pass when run on a G5.
...
llvm-svn: 65117
2009-02-20 07:10:11 +00:00
Dan Gohman
2a12ae7d1f
Implement "superhero" strength reduction, or full strength
...
reduction of address calculations down to basic pointer arithmetic.
This is currently off by default, as it needs a few other features
before it becomes generally useful. And even when enabled, full
strength reduction is only performed when it doesn't increase
register pressure, and when several other conditions are true.
This also factors out a bunch of exisiting LSR code out of
StrengthReduceStridedIVUsers into separate functions, and tidies
up IV insertion. This actually decreases register pressure even
in non-superhero mode. The change in iv-users-in-other-loops.ll
is an example of this; there are two more adds because there are
two fewer leas, and there is less spilling.
llvm-svn: 65108
2009-02-20 04:17:46 +00:00