Duncan Sands
59ae77486c
Output exception call-sites in address order, as required by the unwinding
...
runtime.
llvm-svn: 37104
2007-05-16 12:12:23 +00:00
Evan Cheng
01a4227ed1
Conditional branch is not a barrier.
...
llvm-svn: 37103
2007-05-16 07:45:54 +00:00
Chris Lattner
48fb92f75d
Use a ptr set instead of a linear search to unique TokenFactor operands.
...
This fixes PR1423
llvm-svn: 37102
2007-05-16 06:37:59 +00:00
Chris Lattner
888653cdba
implement the missing maskmovq mmx intrinsic that akor hit.
...
llvm-svn: 37100
2007-05-16 06:08:17 +00:00
Evan Cheng
c95f95b6da
Fix comment.
...
llvm-svn: 37098
2007-05-16 05:14:06 +00:00
Evan Cheng
35fc2119b0
Devang points out that we need an assertion here.
...
llvm-svn: 37097
2007-05-16 05:11:10 +00:00
Reid Spencer
65ba7501fc
Implement printing of instruction result values when debug info is turned
...
on. This helps to speed up the debugging time by showing computational
results as the program executes.
llvm-svn: 37095
2007-05-16 02:05:13 +00:00
Evan Cheng
288f133c71
Bug fix: should check ABI alignment, not pref. alignment.
...
llvm-svn: 37094
2007-05-16 02:04:50 +00:00
Evan Cheng
ad3aac71ce
Hooks for predication support.
...
llvm-svn: 37093
2007-05-16 02:01:49 +00:00
Evan Cheng
f5e53a58db
Initial commit of (very basic) if converter.
...
llvm-svn: 37092
2007-05-16 02:00:57 +00:00
Dale Johannesen
420a85d0cf
Remove extra CFG edges before doing these passes; it makes them happier.
...
llvm-svn: 37089
2007-05-15 21:19:17 +00:00
Lauro Ramos Venancio
3f142cbca2
Fix an infinite recursion in GetNegatedExpression.
...
llvm-svn: 37086
2007-05-15 17:05:43 +00:00
Duncan Sands
750e8c5d4d
The index into the actions table is a ULEB128 not a SLEB128.
...
llvm-svn: 37084
2007-05-15 13:54:14 +00:00
Chris Lattner
66ad6fac2f
selects can also reach here
...
llvm-svn: 37081
2007-05-15 06:42:04 +00:00
Chris Lattner
a6f88ced8b
implement the ModuleProvider::dematerializeFunction hook
...
llvm-svn: 37080
2007-05-15 06:29:44 +00:00
Reid Spencer
daed139420
Un-brain-dead-ify the lowering of part set for the reverse case.
...
llvm-svn: 37071
2007-05-15 02:26:52 +00:00
Chris Lattner
c7596efdad
Fix some subtle issues handling immediate values. This fixes
...
test/CodeGen/ARM/2007-05-14-InlineAsmCstCrash.ll
llvm-svn: 37069
2007-05-15 01:33:58 +00:00
Chris Lattner
0b7472da6f
fix some subtle inline asm selection issues
...
llvm-svn: 37067
2007-05-15 01:31:05 +00:00
Evan Cheng
0f7cbe8370
Add PredicateOperand to all ARM instructions that have the condition field.
...
llvm-svn: 37066
2007-05-15 01:29:07 +00:00
Chris Lattner
c8798d085c
fix subtle bugs in inline asm operand selection
...
llvm-svn: 37065
2007-05-15 01:28:08 +00:00
Evan Cheng
4d728b0419
Added getNumExplicitOperands and findFirstPredOperand.
...
llvm-svn: 37064
2007-05-15 01:26:09 +00:00
Chris Lattner
234f96daa8
Fix Transforms/InstCombine/2007-05-14-Crash.ll
...
llvm-svn: 37057
2007-05-15 00:16:00 +00:00
Lauro Ramos Venancio
1b8d46ab21
Fix previous patch. GOTOFF can be used only when the symbol has internal
...
linkage or hidden visibility.
llvm-svn: 37055
2007-05-14 23:20:21 +00:00
Chris Lattner
e49c974a7c
implement a simple fneg optimization/propagation thing. This compiles:
...
CodeGen/PowerPC/fneg.ll into:
_t4:
fmul f0, f3, f4
fmadd f1, f1, f2, f0
blr
instead of:
_t4:
fneg f0, f3
fmul f0, f0, f4
fmsub f1, f1, f2, f0
blr
llvm-svn: 37054
2007-05-14 22:04:50 +00:00
Evan Cheng
e1595b6859
Only worry about intervening kill if there are more than one live ranges in the interval.
...
llvm-svn: 37052
2007-05-14 21:23:51 +00:00
Evan Cheng
c690cba7d9
Fix for PR1406:
...
v1 =
r2 = move v1
= op r2<kill>
...
r2 = move v1
= op r2<kill>
Clear the first r2 kill if v1 and r2 are joined.
llvm-svn: 37050
2007-05-14 21:10:05 +00:00
Evan Cheng
fc2377d4ed
When marking a register as being implicitly defined, make sure to clear its partial use info as well.
...
llvm-svn: 37046
2007-05-14 20:39:18 +00:00
Lauro Ramos Venancio
d705f5d51d
Optimize PIC implementation. GOTOFF can be used when the symbol is defined
...
and used in the same module.
llvm-svn: 37044
2007-05-14 18:46:23 +00:00
Lauro Ramos Venancio
3551928a2b
Enable aliases on arm-linux.
...
llvm-svn: 37042
2007-05-14 18:32:56 +00:00
Reid Spencer
764ae2a21b
Give names to the final result values of the part_set computations. This
...
just aids in readability and debugability of the output. No functional change.
llvm-svn: 37037
2007-05-14 17:21:17 +00:00
Dan Gohman
8d40e4d965
Correct a few comments.
...
llvm-svn: 37034
2007-05-14 14:31:17 +00:00
Dan Gohman
90d97ac1e6
Add passes -view-cfg and -view-cfg-only that are like -print-cfg and
...
-print-cfg-only except they use the ViewCFG function, which displays the
CFG rendered with graphviz with gv.
llvm-svn: 37033
2007-05-14 14:25:08 +00:00
Reid Spencer
98ed7db7ab
Make the results for the rotate functions correct when rotateAmt == 0.
...
llvm-svn: 37026
2007-05-14 00:15:28 +00:00
Reid Spencer
4c50b52f63
Add some things needed by the llvm-gcc version supporting bit accurate integer
...
types:
1. Functions to compute div/rem at the same time.
2. Further assurance that an APInt with 0 bitwidth cannot be constructed.
3. Left and right rotate operations.
4. An exactLogBase2 function which requires an exact power of two or it
returns -1.
llvm-svn: 37025
2007-05-13 23:44:59 +00:00
Chris Lattner
1904e45d0c
Fix PR1413
...
llvm-svn: 37023
2007-05-13 22:19:27 +00:00
Chris Lattner
cea37beb52
Fix Transforms/GlobalOpt/2007-05-13-Crash.ll
...
llvm-svn: 37020
2007-05-13 21:28:07 +00:00
Anton Korobeynikov
1ee0c8d563
Emit function debug frames in one atom. This will prevent us from generating incorrect assembler in case of both
...
debug information & exception information presented.
llvm-svn: 37019
2007-05-13 17:30:11 +00:00
Anton Korobeynikov
bbaf55448b
Emit multiple common EH frames for multiple (including blank) personality
...
functions. This partly fixes PR1414: now we're restricted only to one
personality function per eh frame, not per module. Further work on
"multiple personalities" topic needs representative example.
llvm-svn: 37018
2007-05-13 15:42:26 +00:00
Anton Korobeynikov
13da17843c
More DWARF-related things cleanup:
...
1. Fix PR1380
2. Apply Duncan's patch from PR1410
3. Insert workaround for "one personality function per module" as noted in PR1414
4. Emit correct debug frames for x86/linux. This partly fixes DebugInfo/2006-11-06-StackTrace.cpp: stack trace is
shown correctly, but arguments for function on top of stack are displayed incorrectly.
llvm-svn: 37015
2007-05-12 22:36:25 +00:00
Reid Spencer
81ee020f64
Fix shl to produce the correct result when the bitwidth is > 64 and the
...
shift amount is 0. Previously this code would do a lshr by the bit width
which can lead to incorrect results.
llvm-svn: 37010
2007-05-12 18:01:57 +00:00
Reid Spencer
bf283708f7
Get the size of auto arrays right, regardless of its changing size.
...
llvm-svn: 37006
2007-05-12 11:07:40 +00:00
Chris Lattner
a26153143e
allow partially materialized modules to be written out, which just strips out
...
the functions which haven't been read.
llvm-svn: 36999
2007-05-11 23:51:59 +00:00
Devang Patel
79a71ec3ad
Fix http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049516.html
...
llvm-svn: 36998
2007-05-11 23:14:43 +00:00
Chris Lattner
1480e16596
significantly improve debug output of lsr
...
llvm-svn: 36996
2007-05-11 22:40:34 +00:00
Dan Gohman
fead7979f7
Update comments to say "vector" instead of "packed".
...
llvm-svn: 36995
2007-05-11 21:43:24 +00:00
Dan Gohman
b5650ebd6a
Fix typos.
...
llvm-svn: 36994
2007-05-11 21:10:54 +00:00
Dan Gohman
2980d9da45
This patch extends the LoopUnroll pass to be able to unroll loops
...
with unknown trip counts. This is left off by default, and a
command-line option enables it. It also begins to separate loop
unrolling into a utility routine; eventually it might be made usable
from other passes.
It currently works by inserting conditional branches between each
unrolled iteration, unless it proves that the trip count is a
multiple of a constant integer > 1, which it currently only does in
the rare case that the trip count expression is a Mul operator with
a ConstantInt operand. Eventually this information might be provided
by other sources, for example by a pass that peels/splits the loop
for this purpose.
llvm-svn: 36990
2007-05-11 20:53:41 +00:00
Chris Lattner
600db3eb96
fix regressions from my previous checking, including
...
Transforms/InstCombine/2006-12-08-ICmp-Combining.ll
llvm-svn: 36989
2007-05-11 16:58:45 +00:00
Anton Korobeynikov
67286b1266
Perform correct actions numbers/sizes computation
...
llvm-svn: 36988
2007-05-11 08:47:35 +00:00
Anton Korobeynikov
00d02442b0
Fix action No calculation in multiple-invoke-one-LP mode
...
llvm-svn: 36987
2007-05-11 08:23:57 +00:00
Chris Lattner
fe2b44de9f
fix Transforms/InstCombine/2007-05-10-icmp-or.ll
...
llvm-svn: 36984
2007-05-11 05:55:56 +00:00
Chris Lattner
436370bac8
fix a memory leak
...
llvm-svn: 36981
2007-05-11 00:43:26 +00:00
Chris Lattner
fd96905f12
Fix a bug where the bcreader could crash on .bc files that were an exact
...
multiple of the page size, due to a bug in MappedFile
llvm-svn: 36980
2007-05-11 00:00:27 +00:00
Dale Johannesen
cc8f571bc8
Do not generate branches to entry block. This fixes several test suite
...
failures on PPC (can happen only when prologue code is null)
llvm-svn: 36979
2007-05-10 23:59:23 +00:00
Anton Korobeynikov
ee02c7d2fb
Ooops. Some debugging stuff :)
...
llvm-svn: 36978
2007-05-10 22:38:46 +00:00
Anton Korobeynikov
96142de3f0
Allow multiple invokes per landing pad. This (probably) fixes PR1410.
...
llvm-svn: 36977
2007-05-10 22:34:59 +00:00
Duncan Sands
b43fe52136
Later computations assume we are aligned at this point.
...
llvm-svn: 36975
2007-05-10 18:40:24 +00:00
Anton Korobeynikov
ed5dad4306
TypeIds are indexed by j, not i
...
llvm-svn: 36974
2007-05-10 15:10:34 +00:00
Dale Johannesen
6e16d09252
Make tail merging handle many more cases (all it can, I think).
...
llvm-svn: 36966
2007-05-10 01:01:49 +00:00
Chris Lattner
623c738fe9
add some notes
...
llvm-svn: 36965
2007-05-10 00:08:04 +00:00
Evan Cheng
f325c2a65e
Can't fold the bit_convert is the store is a truncating store.
...
llvm-svn: 36962
2007-05-09 21:49:47 +00:00
Anton Korobeynikov
192d09c2d9
Do not assert, when case range split metric is zero and JTs are not allowed: just emit binary tree in this case. This
...
fixes PR1403.
llvm-svn: 36959
2007-05-09 20:07:08 +00:00
Devang Patel
9557247412
Fix PR1333
...
Testcases :
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049451.html
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049452.html
llvm-svn: 36955
2007-05-09 08:24:12 +00:00
Evan Cheng
9c031c0ddf
Switch BCC, MOVCCr, etc. to PredicateOperand.
...
llvm-svn: 36948
2007-05-08 21:08:43 +00:00
Evan Cheng
d194a8603d
PredicateOperand can be used as a normal operand for isel.
...
llvm-svn: 36947
2007-05-08 21:06:08 +00:00
Bill Wendling
31fd60ba0c
Change names from RA to something unique to get rid of naming conflicts with
...
certain linkers...
llvm-svn: 36944
2007-05-08 19:02:46 +00:00
Evan Cheng
9e17872c1d
Eliminate MarkVirtRegAliveInBlock recursion.
...
llvm-svn: 36943
2007-05-08 19:00:00 +00:00
Evan Cheng
f50ba31ec6
R0 is a sub-register of X0, etc.
...
llvm-svn: 36939
2007-05-08 17:03:51 +00:00
Dan Gohman
2e1f804764
Fix various whitespace inconsistencies.
...
llvm-svn: 36936
2007-05-08 15:19:19 +00:00
Dan Gohman
49d08a57f5
Correct the comment for ApproximateLoopSize to reflect what it actually does.
...
llvm-svn: 36935
2007-05-08 15:14:19 +00:00
Chris Lattner
4c0a6d660e
Make a preemptive bitcode format change to support PR1146. This lets us do
...
pr1146 in llvm 2.1 without ugly code to emulate old behavior. This should
be merged into the 2.0 release branch.
llvm-svn: 36928
2007-05-08 05:38:01 +00:00
Dale Johannesen
86e1dcf530
Don't generate branch to entry block.
...
llvm-svn: 36917
2007-05-08 01:01:04 +00:00
Lauro Ramos Venancio
744350b131
Fix PR1390 in a better way.
...
llvm-svn: 36916
2007-05-07 23:15:16 +00:00
Evan Cheng
562e45692e
Forgot a check.
...
llvm-svn: 36910
2007-05-07 21:36:06 +00:00
Evan Cheng
d37c23745f
This is no longer needed after enabling the DAG combiner xform.
...
llvm-svn: 36909
2007-05-07 21:29:41 +00:00
Evan Cheng
a4cf58a103
Enable a couple of xforms:
...
- (store (bitconvert v)) -> (store v) if resultant store does not require
higher alignment
- (bitconvert (load v)) -> (load (bitconvert*)v) if resultant load does not
require higher alignment
llvm-svn: 36908
2007-05-07 21:27:48 +00:00
Dale Johannesen
9a25b3afcd
Handle some non-exit blocks in tail merging.
...
llvm-svn: 36907
2007-05-07 20:57:21 +00:00
Duncan Sands
671e8c4444
Parameter attributes on invoke calls were being lost due to the wrong
...
attribute index being used. Fix proposed by Anton Korobeynikov, who
asked me to implement and commit it for him. This is PR1398.
llvm-svn: 36906
2007-05-07 20:49:28 +00:00
Jeff Cohen
b6e144cffe
Unbreak VC++ build.
...
llvm-svn: 36901
2007-05-07 15:21:46 +00:00
Chris Lattner
275757a05e
Enhance MemoryBuffer to return error messages in strings if they occur.
...
llvm-svn: 36899
2007-05-06 23:32:36 +00:00
Chris Lattner
3b6f75cb2f
Fix PR1395, by passing the ID correctly
...
llvm-svn: 36894
2007-05-06 23:13:56 +00:00
Chris Lattner
5992f4709c
add this back
...
llvm-svn: 36892
2007-05-06 20:31:17 +00:00
Anton Korobeynikov
a8fd7fdc25
Detabify
...
llvm-svn: 36891
2007-05-06 20:14:21 +00:00
Anton Korobeynikov
c892cf466d
Update MSIL BE. This patch fixes most weird glitches outlined in
...
README.txt. Patch by Roman Samoilov!
llvm-svn: 36890
2007-05-06 20:13:33 +00:00
Chris Lattner
b2e0a70aa2
lib/Bytecode is dead
...
llvm-svn: 36889
2007-05-06 19:51:20 +00:00
Chris Lattner
0848ff0a08
move this to lib/Archive
...
llvm-svn: 36888
2007-05-06 19:50:53 +00:00
Chris Lattner
00246e9af5
build lib/Archive instead of lib/Bytecode
...
llvm-svn: 36887
2007-05-06 19:50:06 +00:00
Chris Lattner
5b18322e83
adjust this to live in lib/Archive
...
llvm-svn: 36886
2007-05-06 19:49:28 +00:00
Chris Lattner
9c868209b7
remove bytecode reader
...
llvm-svn: 36882
2007-05-06 19:42:57 +00:00
Chris Lattner
cbde84070a
remove the old bc writer
...
llvm-svn: 36881
2007-05-06 19:33:40 +00:00
Chris Lattner
53862f7d2b
fix off-by-one that caused the llvm2cpp test to fail
...
llvm-svn: 36880
2007-05-06 19:27:46 +00:00
Chris Lattner
44f8ad1d40
Flush the file after writing bitcode so that clients who don't close their
...
ofstreams will be ok.
llvm-svn: 36878
2007-05-06 19:19:23 +00:00
Chris Lattner
4211c20988
remove this file for now, we can bring it back from cvs if we need it in
...
the future (and integrate it with membuffer, etc)
llvm-svn: 36876
2007-05-06 19:10:47 +00:00
Chris Lattner
2fce8c5df8
remove libbzip2, it is dead
...
llvm-svn: 36875
2007-05-06 19:05:34 +00:00
Nick Lewycky
e7da2d6ac3
Fix typo in comment.
...
llvm-svn: 36873
2007-05-06 13:37:16 +00:00
Chris Lattner
d2517d6767
don't build bzip2 for now
...
llvm-svn: 36871
2007-05-06 09:31:32 +00:00
Chris Lattner
1761e05c5b
disable this for now
...
llvm-svn: 36870
2007-05-06 09:31:06 +00:00
Chris Lattner
d7a2aee41c
don't build bcreader/bcwriter
...
llvm-svn: 36869
2007-05-06 09:30:31 +00:00
Chris Lattner
41528e6e42
switch this to bitcode instead of bytecode
...
llvm-svn: 36867
2007-05-06 09:29:13 +00:00
Chris Lattner
15273e4d91
Switch this over to bitcode instead of bytecode.
...
llvm-svn: 36866
2007-05-06 09:28:33 +00:00
Chris Lattner
76fd90fb61
Fix a nasty problem where we would miss enumeration of some types. This fixes
...
issues with CE_CAST etc.
llvm-svn: 36864
2007-05-06 08:35:19 +00:00
Chris Lattner
3c5616ee12
Allow structs with zero fields.
...
llvm-svn: 36862
2007-05-06 08:21:50 +00:00
Bill Wendling
f985c492e1
3DNowA implies 3DNow. 64-bit implies SSE1, SSE2, and I assume MMX.
...
llvm-svn: 36860
2007-05-06 07:56:19 +00:00
Chris Lattner
a77bb942a2
add a missing check
...
llvm-svn: 36859
2007-05-06 07:33:01 +00:00
Chris Lattner
5db36d3d82
Fix MemoryBuffer::getFile to return null if it has an error opening the
...
file instead of aborting.
llvm-svn: 36858
2007-05-06 07:24:46 +00:00
Chris Lattner
9b35b3e863
Fix a bug in my previous patch
...
llvm-svn: 36857
2007-05-06 07:24:03 +00:00
Chris Lattner
1ca28f8a90
add bitcode support
...
llvm-svn: 36856
2007-05-06 06:18:07 +00:00
Chris Lattner
a0e5f01e23
add bitcode support
...
llvm-svn: 36855
2007-05-06 06:02:13 +00:00
Chris Lattner
4a4499b69e
pull some win32 code into common code, add bitcode identification support.
...
llvm-svn: 36846
2007-05-06 05:32:21 +00:00
Chris Lattner
b94d80b6fb
teach this to read from bitcode files
...
llvm-svn: 36843
2007-05-06 05:18:53 +00:00
Nate Begeman
4060c7ac63
Reference correct header
...
llvm-svn: 36834
2007-05-06 04:00:55 +00:00
Jeff Cohen
fd73e54ef8
Keep header file free of 'possible loss of data' warnings.
...
llvm-svn: 36832
2007-05-06 03:23:14 +00:00
Jeff Cohen
b3f36d48c6
Unbreak VC++.
...
llvm-svn: 36831
2007-05-06 03:12:47 +00:00
Chris Lattner
c67e6d9d16
add abbrevs for binops and casts. This shrinks a testcase from 725132->682500
...
bytes.
llvm-svn: 36829
2007-05-06 02:38:57 +00:00
Chris Lattner
7ef417107b
add a new CreateBitcodeWriterPass method, which creates a bitcode writer as
...
a pass
llvm-svn: 36828
2007-05-06 02:30:12 +00:00
Chris Lattner
af8fffc081
implement reading/writing of inlineasm objects
...
llvm-svn: 36827
2007-05-06 01:58:20 +00:00
Chris Lattner
cc6d4c9fc2
add some abbrevs for ret and unreachable, shrinking kc++ from 2717360->2705388
...
llvm-svn: 36823
2007-05-06 01:28:01 +00:00
Chris Lattner
9ee4836dde
enumerate the operands of a constant before we enumerate the constant itself
...
This avoids fwd references in the reader.
llvm-svn: 36822
2007-05-06 01:00:28 +00:00
Chris Lattner
f25f710c4d
add a denser encoding for null terminated strings, add a 6-bit abbrev as
...
well. This shrinks kc++ from 2724088 to 2717360 bytes.
llvm-svn: 36821
2007-05-06 00:53:07 +00:00
Chris Lattner
4b6ce8fa59
add an abbreviation for the string constants opzn, shrinking the constnats
...
block from:
Block ID #11 (CONSTANTS_BLOCK):
Num Instances: 1722
Total Size: 3.85976e+06b/482470B/120617W
% of file: 16.7609
Average Size: 2241.44b/280.18B/70.045W
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 1/0.00058072
Tot/Avg Records: 26423/15.3444
% Abbrev Recs: 69.1746
to:
Block ID #11 (CONSTANTS_BLOCK):
Num Instances: 1724
Total Size: 2.62406e+06b/328008B/82001.9W
% of file: 12.041
Average Size: 1522.08b/190.26B/47.5649W
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 2/0.00116009
Tot/Avg Records: 26280/15.2436
% Abbrev Recs: 68.9992
This shrinks kc++ from 2815788 to 2724088 bytes, which means the bitcode
file is now smaller than the bytecode file.
llvm-svn: 36820
2007-05-06 00:42:18 +00:00
Chris Lattner
036d1bddf2
implement the 'string constant' optimization. This shrinks kc.bit from
...
2878544 to 2815788
llvm-svn: 36818
2007-05-06 00:35:24 +00:00
Chris Lattner
e9759c29d1
further reduce the redundancy of types in the instruction encoding. This
...
shrinks function bodies in kc++ from 891913B to 884073B
llvm-svn: 36817
2007-05-06 00:21:25 +00:00
Chris Lattner
df1233dfbb
stop encoding type/value pairs when the type is implied by the value.
...
This shrinks the function block of kc++ from 1055K to 906K
llvm-svn: 36816
2007-05-06 00:00:00 +00:00
Chris Lattner
c2d0530030
handle gep aliasee
...
llvm-svn: 36815
2007-05-05 23:49:02 +00:00
Lauro Ramos Venancio
34b2735f20
Fix PR1390.
...
Don't spill extra register to align the stack.
llvm-svn: 36814
2007-05-05 23:44:41 +00:00
Chris Lattner
9958b82733
add a note
...
llvm-svn: 36811
2007-05-05 22:44:08 +00:00
Chris Lattner
5aa73fe34c
Implement Transforms/InstCombine/cast_ptr.ll
...
llvm-svn: 36809
2007-05-05 22:41:33 +00:00
Chris Lattner
361e981415
wrap long lines
...
llvm-svn: 36807
2007-05-05 22:32:24 +00:00
Chris Lattner
2cca31f77f
the mason example is implemented. Move some examples out of llvm/test,
...
upgrade the syntax of some other examples.
llvm-svn: 36806
2007-05-05 22:29:06 +00:00
Chris Lattner
cc43c3fe6b
implement anyextend from i1 -> i64
...
llvm-svn: 36802
2007-05-05 22:17:00 +00:00
Chris Lattner
be8f99ecbb
move CodeGen/X86/overlap-add.ll here.
...
llvm-svn: 36799
2007-05-05 22:10:24 +00:00
Duncan Sands
00282a21a5
Use the personality function that was registered with MMI rather than
...
hardwiring in the C++ one.
llvm-svn: 36789
2007-05-05 20:27:00 +00:00
Chris Lattner
07e6f3257c
Propagate alignment/volatility in two places.
...
Implement support for expanding a bitcast from an illegal vector type to
a legal one (e.g. 4xi32 -> 4xf32 in SSE1). This fixes PR1371 and
CodeGen/X86/2007-05-05-VecCastExpand.ll
llvm-svn: 36787
2007-05-05 19:39:05 +00:00
Chris Lattner
6eeea5dc05
add support for BLOCKINFO records at the module level. This fixes the reader
...
issues reid noticed last night.
llvm-svn: 36785
2007-05-05 18:57:30 +00:00
Chris Lattner
1077d2a30d
Fix Transforms/LoopUnroll/2007-05-05-UnrollMiscomp.ll and PR1385.
...
If we have a LCSSA, only modify the input value if the inval was defined
by an instruction in the loop. If defined by something before the loop,
it is still valid.
llvm-svn: 36784
2007-05-05 18:49:57 +00:00
Chris Lattner
57d89a5a89
make a temporary for *SI, no functionality change.
...
llvm-svn: 36782
2007-05-05 18:36:36 +00:00
Duncan Sands
02528f5425
Spelling fix.
...
llvm-svn: 36781
2007-05-05 16:32:57 +00:00
Anton Korobeynikov
4db0090339
Emit sections/directives in the proper order. This fixes PR1376. Also,
...
some small cleanup was made.
llvm-svn: 36780
2007-05-05 09:04:50 +00:00
Chris Lattner
b80751dca2
add an abbrev for loads. This shrinks the function block about 50K, from:
...
Block ID #12 (FUNCTION_BLOCK):
Num Instances: 2344
Total Size: 8.8434e+06b/1.10542e+06B/276356W
% of file: 35.6726
Average Size: 3772.78b/471.598B/117.899W
Tot/Avg SubBlocks: 4065/1.73422
Tot/Avg Abbrevs: 0/0
Tot/Avg Records: 128487/54.8153
% Abbrev Recs: 0
to:
Block ID #12 (FUNCTION_BLOCK):
Num Instances: 2344
Total Size: 8.44518e+06b/1.05565e+06B/263912W
% of file: 34.6203
Average Size: 3602.89b/450.362B/112.59W
Tot/Avg SubBlocks: 4065/1.73422
Tot/Avg Abbrevs: 0/0
Tot/Avg Records: 128487/54.8153
% Abbrev Recs: 22.2077
llvm-svn: 36779
2007-05-05 07:44:49 +00:00
Chris Lattner
da5e5d211b
add abbrevs for the constants tables. This shrinks it from 4.49755e6 bits
...
to 3.85972e6 bits in kc++
llvm-svn: 36778
2007-05-05 07:36:14 +00:00
Chris Lattner
ccee706345
Add abbreviations to the TYPE_BLOCK for pointers, functions, structs and arrays.
...
This shrinks the type_block of kc++ from 139901 bits to 99389 bits (0.55% to 0.39%
of the file), a 40% reduction.
This shrink the record from:
Block ID #10 (TYPE_BLOCK):
Num Instances: 1
Total Size: 139901b/17487.6B/4371.91W
% of file: 0.549306
Num Abbrevs: 0
Num Records: 3203
% Abbrev Recs: 0
to:
Block ID #10 (TYPE_BLOCK):
Num Instances: 1
Total Size: 99389b/12423.6B/3105.91W
% of file: 0.390862
Num Abbrevs: 4
Num Records: 3203
% Abbrev Recs: 99.6566
With a common histogram of:
Code Histogram:
1613 POINTER
1100 FUNCTION
255 STRUCT
224 ARRAY
5 INTEGER
2 OPAQUE
1 LABEL
1 DOUBLE
1 VOID
1 NUMENTRY
llvm-svn: 36776
2007-05-05 06:30:12 +00:00
Chris Lattner
5c827bda0d
Fix InstCombine/2007-05-04-Crash.ll and PR1384
...
llvm-svn: 36775
2007-05-05 01:59:31 +00:00
Chris Lattner
e760d6f4c1
add a char6 abbrev for bbnames and value names. This represents each character
...
with 6 bits where possible. This shrinks kc++ from 3324164B to 3183584B. The
old VST was:
Block ID #14 (VALUE_SYMTAB):
Total Size: 1.26713e+07b/1.58391e+06B/395978W
Average Size: 5403.53b/675.442B/168.86W
% of file: 47.6484
The new one is:
Block ID #14 (VALUE_SYMTAB):
Total Size: 1.15467e+07b/1.44334e+06B/360834W
Average Size: 4923.96b/615.495B/153.874W
% of file: 45.3368
This is 11% smaller than the VST in the bytecode format.
llvm-svn: 36771
2007-05-05 01:26:50 +00:00
Chris Lattner
de05f6be35
add an abbreviation for the type symtab, this shrinks the TST from 175197 bits
...
to 103165 bits:
Old:
Block ID #13 (TYPE_SYMTAB):
Num Instances: 1
Total Size: 175197b/21899.6B/5474.91W
Average Size: 175197b/21899.6B/5474.91W
% of file: 0.657023
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 0/0
Tot/Avg Records: 255/255
% Abbrev Recs: 0
New:
Block ID #13 (TYPE_SYMTAB):
Num Instances: 1
Total Size: 103165b/12895.6B/3223.91W
Average Size: 103165b/12895.6B/3223.91W
% of file: 0.387937
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 1/1
Tot/Avg Records: 255/255
% Abbrev Recs: 100
llvm-svn: 36769
2007-05-05 00:47:19 +00:00
Chris Lattner
982ec1eddc
Implement support for globally associating abbrevs with block IDs, which
...
relieves us from having to emit the abbrevs into each instance of the block.
This shrinks kc.bit from 3368K to 3333K, but will be a more significant win
once instructions are abbreviated.
The VST went from:
Block ID #14 (VALUE_SYMTAB):
Num Instances: 2345
Total Size: 1.29508e+07b/1.61885e+06B/404713W
Average Size: 5522.73b/690.342B/172.585W
% of file: 48.0645
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 7035/3
Tot/Avg Records: 120924/51.5667
% Abbrev Recs: 100
to:
Block ID #14 (VALUE_SYMTAB):
Num Instances: 2345
Total Size: 1.26713e+07b/1.58391e+06B/395978W
Average Size: 5403.53b/675.442B/168.86W
% of file: 47.5198
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 0/0
Tot/Avg Records: 120924/51.5667
% Abbrev Recs: 100
because we didn't emit the same 3 abbrevs 2345 times :)
llvm-svn: 36767
2007-05-05 00:17:00 +00:00
Lauro Ramos Venancio
8f8199086f
Add a processor.
...
llvm-svn: 36765
2007-05-04 22:16:30 +00:00
Chris Lattner
a09879663d
allow the 8-bit abbrev to be used for either bb or other values
...
llvm-svn: 36761
2007-05-04 21:31:13 +00:00
Chris Lattner
fd1ad10e61
shave another 150K off of kc++, by using a 7-bit encoding for BB names
...
where we can. This shrinks kc++'s down to 3368K, with a VST record of:
Block ID #14 (VALUE_SYMTAB):
Num Instances: 2345
Total Size: 1.29508e+07b/1.61885e+06B/404713W
Average Size: 5522.73b/690.342B/172.585W
% of file: 48.0645
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 7035/3
Tot/Avg Records: 120924/51.5667
% Abbrev Recs: 100
Isn't it nice to be able to optimizer bc size without touching the reader? :)
llvm-svn: 36759
2007-05-04 20:58:35 +00:00
Chris Lattner
4d92598ab0
where possible, encode symtab names with 7 bits per char instead of 8. This
...
shaves 110K off kc++ to 3514K. Before:
Block ID #14 (VALUE_SYMTAB):
Num Instances: 2345
Total Size: 1.50425e+07b/1.88031e+06B/470077W
Average Size: 6414.69b/801.837B/200.459W
% of file: 51.8057
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 2345/1
Tot/Avg Records: 120924/51.5667
% Abbrev Recs: 85.1791
after:
Block ID #14 (VALUE_SYMTAB):
Num Instances: 2345
Total Size: 1.41229e+07b/1.76536e+06B/441341W
Average Size: 6022.56b/752.82B/188.205W
% of file: 50.2295
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 4690/2
Tot/Avg Records: 120924/51.5667
% Abbrev Recs: 85.1791
llvm-svn: 36758
2007-05-04 20:52:02 +00:00
Bill Wendling
e6182267d7
Add an "implies" field to features. This indicates that, if the current
...
feature is set, then the features in the implied list should be set also.
The opposite is also enforced: if a feature in the implied list isn't set,
then the feature that owns that implies list shouldn't be set either.
llvm-svn: 36756
2007-05-04 20:38:40 +00:00