| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
No compile-time support for constant operations yet,
just format transformations. Make readers and
writers work. Split constants into 2 doubles in
Legalize.
llvm-svn: 42865
|
|
|
|
| |
llvm-svn: 42707
|
|
|
|
|
|
| |
bindings headers themselves, hidden behind #ifdef __cplusplus.
llvm-svn: 42666
|
|
|
|
| |
llvm-svn: 42465
|
|
|
|
|
|
| |
destruction of compiler-created ones.
llvm-svn: 42383
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The naming prefix is LLVM.
- All types are represented using opaque references.
- Functions are not named LLVM{Type}{Method}; the names became
unreadable goop. Instead, they are named LLVM{ImperativeSentence}.
- Where an attribute only appears once in the class hierarchy (e.g.,
linkage only applies to values; parameter types only apply to
function types), the class is omitted from identifiers for
brevity. Tastes like methods.
- Strings are C strings or string/length tuples on a case-by-case
basis.
- APIs which give the caller ownership of an object are not mapped
(removeFromParent, certain constructor overloads). This keeps
keep memory management as simple as possible.
For each library with bindings:
llvm-c/<LIB>.h - Declares the bindings.
lib/<LIB>/<LIB>.cpp - Implements the bindings.
So just link with the library of your choice and use the C header
instead of the C++ one.
llvm-svn: 42077
|
|
|
|
|
|
|
| |
Next round of x87 long double stuff.
Getting close now, basically works.
llvm-svn: 41875
|
|
|
|
|
|
|
|
|
| |
access to bits). Use them in place of float and
double interfaces where appropriate.
First bits of x86 long double constants handling
(untested, probably does not work).
llvm-svn: 41858
|
|
|
|
| |
llvm-svn: 41769
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use APFloat in UpgradeParser and AsmParser.
Change all references to ConstantFP to use the
APFloat interface rather than double. Remove
the ConstantFP double interfaces.
Use APFloat functions for constant folding arithmetic
and comparisons.
(There are still way too many places APFloat is
just a wrapper around host float/double, but we're
getting there.)
llvm-svn: 41747
|
|
|
|
|
|
| |
GLIBCXX_DEBUG issues.
llvm-svn: 41697
|
|
|
|
| |
llvm-svn: 41506
|
|
|
|
|
|
|
|
|
|
|
|
| |
to handle values bigger than double. If we assume host==target and host
long double works correctly, this is not too bad, but we don't want to
have that limitation longterm. I could implement accepting double
constants as long double or something like that, which would lead to
incorrect codegen with no errors; the more I think about that the worse
it seems. Rather than do such a hack that would be backed out later,
I'm settling for giving reasonable error messages, for now.
llvm-svn: 40974
|
|
|
|
|
|
|
|
| |
LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future.
This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported.
llvm-svn: 40807
|
|
|
|
| |
llvm-svn: 40774
|
|
|
|
|
|
|
|
| |
indexing an empty std::vector.
Updates to all clients.
llvm-svn: 40660
|
|
|
|
| |
llvm-svn: 37916
|
|
|
|
|
|
| |
Almost all occurrences of "bytecode" in the sources have been eliminated.
llvm-svn: 37913
|
|
|
|
| |
llvm-svn: 37204
|
|
|
|
| |
llvm-svn: 37080
|
|
|
|
|
|
| |
the functions which haven't been read.
llvm-svn: 36999
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 36880
|
|
|
|
|
|
| |
ofstreams will be ok.
llvm-svn: 36878
|
|
|
|
|
|
| |
issues with CE_CAST etc.
llvm-svn: 36864
|
|
|
|
| |
llvm-svn: 36862
|
|
|
|
| |
llvm-svn: 36859
|
|
|
|
| |
llvm-svn: 36832
|
|
|
|
| |
llvm-svn: 36831
|
|
|
|
|
|
| |
bytes.
llvm-svn: 36829
|
|
|
|
|
|
| |
a pass
llvm-svn: 36828
|
|
|
|
| |
llvm-svn: 36827
|
|
|
|
| |
llvm-svn: 36823
|
|
|
|
|
|
| |
This avoids fwd references in the reader.
llvm-svn: 36822
|
|
|
|
|
|
| |
well. This shrinks kc++ from 2724088 to 2717360 bytes.
llvm-svn: 36821
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
2878544 to 2815788
llvm-svn: 36818
|
|
|
|
|
|
| |
shrinks function bodies in kc++ from 891913B to 884073B
llvm-svn: 36817
|
|
|
|
|
|
| |
This shrinks the function block of kc++ from 1055K to 906K
llvm-svn: 36816
|
|
|
|
|
|
| |
issues reid noticed last night.
llvm-svn: 36785
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
to 3.85972e6 bits in kc++
llvm-svn: 36778
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 36761
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
instead of the default inefficient encoding. This shrinks kc++ from 4134K
to 3629K
llvm-svn: 36755
|