1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
Commit Graph

46428 Commits

Author SHA1 Message Date
Anton Korobeynikov
fe1c6d85b8 Add MSP430 test for PR4136
llvm-svn: 71392
2009-05-10 14:48:36 +00:00
Sanjiv Gupta
07c4b65112 Changed lowering and asmprinter to use ABI Names class called PAN.
llvm-svn: 71386
2009-05-10 05:23:47 +00:00
Bill Wendling
c4ffa72fc4 --- Reverse-merging r71370 into '.':
U    lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp

Revert r71370.

llvm-svn: 71373
2009-05-10 00:10:50 +00:00
Bill Wendling
bea75516f2 A debug function start was not being recorded when the optimization level wasn't
None. However, we were always recording the region end. There's no longer a good
reason for this code to be separated out between the different opt levels, as it
was doing pretty much the same thing anyway.

llvm-svn: 71370
2009-05-09 23:51:35 +00:00
Evan Cheng
581641b664 Oops. Don't forget to align single bb loops.
llvm-svn: 71363
2009-05-09 19:18:01 +00:00
Chris Lattner
e8160d0836 fix typo
llvm-svn: 71362
2009-05-09 18:11:50 +00:00
Eli Friedman
aec1764402 Allow scalar evolution to compute iteration counts for loops with a
pointer-based condition.  This fixes PR3171.

llvm-svn: 71354
2009-05-09 12:32:42 +00:00
Eli Friedman
69845a85a5 Remove a completed optimization. Add a potential optimization I ran
into.

llvm-svn: 71352
2009-05-09 08:40:15 +00:00
Duncan Sands
f7af13b2d4 Rename PaddedSize to AllocSize, in the hope that this
will make it more obvious what it represents, and stop
it being confused with the StoreSize.

llvm-svn: 71349
2009-05-09 07:06:46 +00:00
Sanjiv Gupta
65a3fde6a5 Use 16 bit arithmetic while retrieving the address of callee's frame during indirect function calls, and set pclath before every call to retrieve the frame address.
llvm-svn: 71323
2009-05-09 05:11:19 +00:00
Evan Cheng
bf67b0edef Factor out code that optimize loop terminating condition.
llvm-svn: 71305
2009-05-09 01:08:24 +00:00
Dan Gohman
3de703ce43 Don't attempt to handle unsized types in ScalarEvolution's GEP analyzer.
llvm-svn: 71302
2009-05-09 00:14:52 +00:00
Evan Cheng
06b0d3879e Enable loop bb placement optimization.
llvm-svn: 71291
2009-05-08 23:35:49 +00:00
Dan Gohman
141989d3c2 Fix bogus overflow checks by replacing them with actual
overflow checks.

llvm-svn: 71284
2009-05-08 23:11:16 +00:00
Evan Cheng
8e26879521 PPC::B and PPC::BCC's target operand may be an immediate.
llvm-svn: 71282
2009-05-08 23:09:25 +00:00
Mike Stump
5deb77232a In non-pic builds, we can use -mdynamic-no-pic for a little more speed.
llvm-svn: 71281
2009-05-08 23:08:58 +00:00
Dan Gohman
98da279d6d Use .td for tablegen files, not .ll.
llvm-svn: 71277
2009-05-08 23:01:28 +00:00
Mike Stump
9779d47f7a Avoid warning in release-asserts build.
llvm-svn: 71275
2009-05-08 22:53:06 +00:00
Bill Wendling
1dccca6452 Mirror how Fast ISel determines if a region.end intrinsic is the end of an
inlined function or the end of a function. Before, this was never executing the
"inlined" version of the Record method.

This will become important once the inlined Dwarf writer patch lands.

llvm-svn: 71268
2009-05-08 21:14:49 +00:00
Dan Gohman
603f022049 Fold trunc casts into add-recurrence expressions, allowing the
add-recurrence to be exposed. Add a new SCEV folding rule to
help simplify expressions in the presence of these extra truncs.

llvm-svn: 71264
2009-05-08 21:03:19 +00:00
Bill Wendling
6ad9e22d42 Compute the offsets of the compile units. We need this so that when we emit a
concrete instance of an inlined function, we can get the actual address of the
abstract instance inside of the compile unit.

This isn't currently used, but will be by a future check-in.

llvm-svn: 71263
2009-05-08 21:03:15 +00:00
Dan Gohman
6eaf7850d8 Fix another bug in r71252. This code supports GetElementPtr
constant exprs as well as instructions.

llvm-svn: 71262
2009-05-08 20:58:38 +00:00
Bill Wendling
3bb11df772 Fix typo.
llvm-svn: 71260
2009-05-08 20:49:29 +00:00
Dan Gohman
f3461c73e8 Add memoization for getSCEVAtScope results for instructions
which are not analyzed with SCEV techniques, which can require
brute-forcing through a large number of instructions. This
fixes a massive compile-time issue on 400.perlbench (in
particular, the loop in MD5Transform).

llvm-svn: 71259
2009-05-08 20:47:27 +00:00
Dan Gohman
1307f44388 Make the SCEV* form of getSCEVAtScope public, to allow ScalarEvolution
clients to use it.

llvm-svn: 71258
2009-05-08 20:38:54 +00:00
Bill Wendling
d7428b0d9c Minor clean ups. No functionality change.
llvm-svn: 71256
2009-05-08 20:38:02 +00:00
Dan Gohman
6d21c4110b Fix an error from r71252.
llvm-svn: 71255
2009-05-08 20:36:47 +00:00
Bill Wendling
5de4207c68 Print out nicer dump info for DIDescriptor.
llvm-svn: 71253
2009-05-08 20:28:06 +00:00
Dan Gohman
afd53ad1a3 Factor out the code for creating SCEVs for GEPs into a
separate function.

llvm-svn: 71252
2009-05-08 20:26:55 +00:00
Dan Gohman
34a6d38d54 Implement several new SCEV folding rules for UDiv SCEVs.
This fixes an old FIXME, and is needed by some upcoming changes.

llvm-svn: 71247
2009-05-08 20:18:49 +00:00
Dan Gohman
13bdd062ea Add a getExitBlock utility function to LoopInfo which returns the
exit block of a loop, if there is exactly one, similar to
getExitingBlock.

llvm-svn: 71245
2009-05-08 20:07:23 +00:00
Evan Cheng
aadb8051c0 Don't align loop header unless the loop back edge is below the header.
llvm-svn: 71242
2009-05-08 19:01:44 +00:00
Anton Korobeynikov
b3dc881070 Factor out cycle-finder code and make it generic.
llvm-svn: 71241
2009-05-08 18:51:58 +00:00
Anton Korobeynikov
026d2328a6 Do not emit bit tests if target does not support natively left shift
llvm-svn: 71240
2009-05-08 18:51:34 +00:00
Anton Korobeynikov
5461d8e07d Allow 8 bit select in custom inserter
llvm-svn: 71239
2009-05-08 18:51:21 +00:00
Anton Korobeynikov
353d4609cf Properly expand libcalls for urem / srem. Also make code more straightforward.
llvm-svn: 71238
2009-05-08 18:51:08 +00:00
Anton Korobeynikov
aa7f982935 Typo
llvm-svn: 71237
2009-05-08 18:50:54 +00:00
Anton Korobeynikov
1be416b310 Expand UREM / SREM into libcalls
llvm-svn: 71236
2009-05-08 18:50:41 +00:00
Anton Korobeynikov
8364529d37 Add 8 bit select
llvm-svn: 71235
2009-05-08 18:50:26 +00:00
Chris Lattner
7b2dabcac9 Fix PR4152: asm constraint validation happens before dag combine, so we
need to work a bit to combine things like (x+c1+c2) into x+c3.

llvm-svn: 71232
2009-05-08 18:23:14 +00:00
Duncan Sands
8566ed7a4f Add some examples to show the difference between
the various notions of type size used in LLVM.

llvm-svn: 71230
2009-05-08 17:49:48 +00:00
Chris Lattner
5e3bb54910 Change 'make install' to install tblgen, for better support of out-of-tree targets,
patch by Mikael Lepistö!

llvm-svn: 71226
2009-05-08 17:32:47 +00:00
Chris Lattner
0fd5aea274 fix RewriteStoreUserOfWholeAlloca to use the correct type size
method, fixing a crash on PR4146.  While the store will 
ultimately overwrite the "padded size" number of bits in memory,
the stored value may be a subset of this size.  This function
only wants to handle the case where all bits are stored.

llvm-svn: 71224
2009-05-08 15:54:41 +00:00
Evan Cheng
10038ab095 Reverse branch condition only when there is a conditional branch.
llvm-svn: 71214
2009-05-08 09:35:53 +00:00
Nick Lewycky
a8f179d44b Add explicit braces to disambiguate nested if/else. Removes a warning.
llvm-svn: 71211
2009-05-08 06:57:41 +00:00
Nick Lewycky
8d9ef77adc This transform requires valid TargetData info. Wrap it in 'if (TD)' in
preparation for the day we use null TargetData when no target is specified.

llvm-svn: 71210
2009-05-08 06:47:37 +00:00
Evan Cheng
2a1d20b0fb Optimize code placement in loop to eliminate unconditional branches or move unconditional branch to the outside of the loop. e.g.
///       A:                                                                                                                                                                 
///       ...                                                                                                                                                                
///       <fallthrough to B>                                                                                                                                                 
///                                                                                                                                                                          
///       B:  --> loop header                                                                                                                                                
///       ...                                                                                                                                                                
///       jcc <cond> C, [exit]                                                                                                                                               
///                                                                                                                                                                          
///       C:                                                                                                                                                                 
///       ...                                                                                                                                                                
///       jmp B                                                                                                                                                              
///                                                                                                                                                                          
/// ==>                                                                                                                                                                      
///                                                                                                                                                                          
///       A:                                                                                                                                                                 
///       ...                                                                                                                                                                
///       jmp B                                                                                                                                                              
///                                                                                                                                                                          
///       C:  --> new loop header                                                                                                                                            
///       ...                                                                                                                                                                
///       <fallthough to B>                                                                                                                                                  
///                                                                                                                                                                          
///       B:                                                                                                                                                                 
///       ...                                                                                                                                                                
///       jcc <cond> C, [exit] 

llvm-svn: 71209
2009-05-08 06:34:09 +00:00
Nick Lewycky
575cf1d259 Add missing #include for "strlen" which is used inline in this header. Fixes
build under gcc 4.3.

llvm-svn: 71208
2009-05-08 06:22:25 +00:00
Sanjiv Gupta
3a905e7586 Moved pic16 naming functions to correct place.
No functionality change.

llvm-svn: 71207
2009-05-08 04:50:14 +00:00
Eli Friedman
a280375b23 PR4123: don't crash when inlining a call which uses its own result.
llvm-svn: 71199
2009-05-08 00:22:04 +00:00