Reid Spencer
19dc32a2d4
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37025 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-13 23:44:59 +00:00
Anton Korobeynikov
8c7c17354c
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37018 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-13 15:42:26 +00:00
Anton Korobeynikov
0ff3ca4f92
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37015 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-12 22:36:25 +00:00
Dan Gohman
667976e35f
Remove forward-declarations for classes that don't exist.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36993 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-11 21:05:57 +00:00
Dan Gohman
1031c6f220
Add explicit keywords to several constructors that now have one argument.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36992 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-11 21:04:48 +00:00
Dan Gohman
b96039e4b9
Simplify BranchInst::getSuccessor, avoiding a conditional operator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36991 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-11 20:59:29 +00:00
Anton Korobeynikov
eeb37e0b80
Allow multiple invokes per landing pad. This (probably) fixes PR1410.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36977 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-10 22:34:59 +00:00
Evan Cheng
56184904cd
Eliminate MarkVirtRegAliveInBlock recursion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36943 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-08 19:00:00 +00:00
Evan Cheng
6603d7ec67
Add MachineBasicBlock preds / succs reverse iterators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36942 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-08 18:55:03 +00:00
Chris Lattner
7adb53e7b1
update comments, no functionality change
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36929 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-08 05:38:32 +00:00
Jeff Cohen
0fea8ebb4a
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36901 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-07 15:21:46 +00:00
Chris Lattner
5499da8833
Enhance MemoryBuffer to return error messages in strings if they occur.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36899 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 23:32:36 +00:00
Chris Lattner
4f40b75b01
remove bytecode headers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36885 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 19:47:36 +00:00
Chris Lattner
663d7ddf63
remove dead header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36884 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 19:46:23 +00:00
Nick Lewycky
ecd94c804a
Fix typo in comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36873 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 13:37:16 +00:00
Chris Lattner
4cbc5485e0
Move this here from Bytecode/Archive.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36865 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 09:14:53 +00:00
Chris Lattner
b55a5803b2
allow zero-length arrays
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36863 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 08:22:10 +00:00
Chris Lattner
9850b57587
we aren't at the end of stream until we've consumed all the bytes AND all
...
the bits in those bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36861 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 08:12:09 +00:00
Chris Lattner
609083b9e0
add support for identifying bitcode files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36845 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 05:30:10 +00:00
Chris Lattner
e96eec0c69
Add a helper that either opens a file or stdin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36835 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 04:41:59 +00:00
Jeff Cohen
85a57910bd
Make code more 64-bit aware.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36833 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 03:24:19 +00:00
Jeff Cohen
332376bc60
Unbreak VC++.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36831 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 03:12:47 +00:00
Chris Lattner
e8e1e4bf8a
add a new CreateBitcodeWriterPass method, which creates a bitcode writer as
...
a pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36828 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 02:30:12 +00:00
Chris Lattner
c5ff2cc3de
add inline asm code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36826 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 01:50:11 +00:00
Chris Lattner
048d0bd4c0
Fix a subtle bug that prevented round-tripping 470.lbm
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36825 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 01:43:38 +00:00
Chris Lattner
cb3d91b05b
add a denser encoding for null terminated strings, add a 6-bit abbrev as
...
well. This shrinks kc++ from 2724088 to 2717360 bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36821 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 00:53:07 +00:00
Chris Lattner
ff7fc5dabe
implement the 'string constant' optimization. This shrinks kc.bit from
...
2878544 to 2815788
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36818 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 00:35:24 +00:00
Chris Lattner
07b54242a8
fix a bug I introduced when I merged some code together
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36813 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 23:40:48 +00:00
Anton Korobeynikov
2a07e2f4df
Emit sections/directives in the proper order. This fixes PR1376. Also,
...
some small cleanup was made.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36780 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 09:04:50 +00:00
Chris Lattner
02a13b5c50
minor bugfix
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36777 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 07:20:34 +00:00
Chris Lattner
28e4c4c9b3
add a 6-bit encoding type for strings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36770 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 01:15:42 +00:00
Chris Lattner
e17b658c79
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 :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36767 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 00:17:00 +00:00
Chris Lattner
8d42fc3da2
use a template to eliminate manual code duplication
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36757 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 20:40:50 +00:00
Bill Wendling
4222d806fa
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36756 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 20:38:40 +00:00
Chris Lattner
3c074f61ed
add support for array abbreviations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36754 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 20:33:47 +00:00
Chris Lattner
1d33bb3108
eliminate lengths from record bodies
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36751 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 19:10:48 +00:00
Chris Lattner
a727d5502c
minor cleanups. Add provisions for a new standard BLOCKINFO_BLOCK
...
block type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36748 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 18:25:49 +00:00
Chris Lattner
299b2d2070
refcount BitCodeAbbrev objects
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36747 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 17:35:19 +00:00
Chris Lattner
645fc4edc2
if functiontype is going to have a pointer to a paramattr object, it better
...
be const. The only way to get a pointer to these returns a const pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36734 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:39:28 +00:00
Chris Lattner
310fbbf7f7
add a helper
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36729 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:13:39 +00:00
Chris Lattner
20c7b986d9
remove unused code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36727 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:01:46 +00:00
Chris Lattner
dea4205556
add new codes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36725 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:00:00 +00:00
Chris Lattner
b7dd88fa7d
add a new code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36703 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:16:11 +00:00
Jeff Cohen
b4dbd9e243
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36700 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:09:21 +00:00
Devang Patel
99c282453a
Use iterative while loop instead of recursive function call.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36694 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 20:55:18 +00:00
Dan Gohman
4998264403
Use the explicit keyword for the SCEV class' constructor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36686 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:45:06 +00:00
Chris Lattner
82493289e0
This is a patch to fix a compile error in STLExtras.h, and
...
a bug in GraphWriter.cpp.
Patch by Florian Brandner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36684 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:32:10 +00:00
Chris Lattner
18a4c74136
remove extraneous type qualifiers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36679 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:14:56 +00:00
Chris Lattner
7cf67dfb6a
remove extraneous top-level semi's
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36678 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:13:15 +00:00
Chris Lattner
a6bb4a9e93
remove two useless functions. Just inherit Type's implementation instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36677 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 17:10:20 +00:00