Chris Lattner [Thu, 8 Jul 2004 15:54:29 +0000 (15:54 +0000)]
This file uses the Value class without a forward decl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14691
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Jul 2004 15:41:08 +0000 (15:41 +0000)]
Add a test that I have had in my tree for several months now, but apparently forgot to commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14690
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Jul 2004 15:38:23 +0000 (15:38 +0000)]
Fix this testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14689
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 8 Jul 2004 09:08:35 +0000 (09:08 +0000)]
Support setcc on fp values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14687
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 8 Jul 2004 09:08:22 +0000 (09:08 +0000)]
Add floating-point branches and compares. Compares don't complete
until the next cycle, and there's no interlock, so they effectively
have a delay slot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14686
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 8 Jul 2004 08:08:23 +0000 (08:08 +0000)]
Fix bug where SwitchSection would fail to change to ".bss" successfully.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14685
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 8 Jul 2004 08:08:10 +0000 (08:08 +0000)]
Fix bug involving bool arguments to binary operators.
Fix typo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14684
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 8 Jul 2004 07:52:13 +0000 (07:52 +0000)]
Fix bug in copying long constants to register pairs. We were getting
the top and bottom halves backwards...how embarrassing.
Support 'cast long to long' and other similar no-op casts to long.
Support 'ret long'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14683
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Jul 2004 07:25:51 +0000 (07:25 +0000)]
Disable some code that isn't helping matters
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14682
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 8 Jul 2004 07:22:27 +0000 (07:22 +0000)]
Support 'ret float'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14681
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Jul 2004 03:42:20 +0000 (03:42 +0000)]
Really, it is not necessary to recompile all files in a profile build every
time!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14680
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 8 Jul 2004 00:47:58 +0000 (00:47 +0000)]
Add viewCFG() and viewCFGOnly() APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14679
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 7 Jul 2004 21:22:05 +0000 (21:22 +0000)]
There is no error message to print out, end sentence with `!'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14678
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 7 Jul 2004 21:20:28 +0000 (21:20 +0000)]
Make error message consistent with the rest of LLVM by saying that bytecode
is read, not parsed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14677
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 7 Jul 2004 21:19:01 +0000 (21:19 +0000)]
Fix some thinkos in the script (error handling, proper argument handling).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14676
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 7 Jul 2004 21:06:28 +0000 (21:06 +0000)]
Bug 391 fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14675
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 7 Jul 2004 21:01:38 +0000 (21:01 +0000)]
Fix for bug 391.
Improve exeception handling around bcreader invocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14674
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 7 Jul 2004 20:07:22 +0000 (20:07 +0000)]
* Use a map for caching lookups to external functions (fp div/rem)
* Tabs to spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14673
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 7 Jul 2004 20:01:36 +0000 (20:01 +0000)]
* Wrap long lines (comments and code)
* Tabs to spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14672
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 18:07:46 +0000 (18:07 +0000)]
Fix regressions in these testcases:
Regression.Assembler.2002-01-24-BadSymbolTableAssert
Regression.Assembler.2002-01-24-ValueRefineAbsType
Found through the nightly tester :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14671
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 7 Jul 2004 15:36:18 +0000 (15:36 +0000)]
Add fmod() to the Module being compiled so that it gets a stub in the asm file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14670
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 7 Jul 2004 15:02:54 +0000 (15:02 +0000)]
Insert a reference to uint32_vbr encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14669
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 7 Jul 2004 13:34:26 +0000 (13:34 +0000)]
An update with corrections to content as well as using a regex style
notation that Chris' suggested to make the specification more compact and
succinct. Added a section to Describe the notation, made the VBR
description its own section, and otherwise generally cleaned things up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14668
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 06:48:27 +0000 (06:48 +0000)]
The bytecode reader wants to be able to read types that are not quite resolved
yet, then resolve them in it's own sweet time. We must support this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14666
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 06:35:22 +0000 (06:35 +0000)]
Headers moved
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14665
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 06:32:53 +0000 (06:32 +0000)]
All of these now live in the DataStructure directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14664
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 06:32:21 +0000 (06:32 +0000)]
Move all of the DSA headers into the Analysis/DataStructure subdir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14663
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 06:29:26 +0000 (06:29 +0000)]
Move DSA headers into Analysis/DataStructure to make it more obvious
what is implemented by the DataStructure library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14662
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 06:22:54 +0000 (06:22 +0000)]
Moving headers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14661
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 06:12:52 +0000 (06:12 +0000)]
As much as I hate to say it, the whole setNode interface for DSNodeHandles
is HOPELESSLY broken. The problem is that the embedded getNode call can
change the offset of the node handle in unpredictable ways.
As it turns out, all of the clients of this method really want to set
both the node and the offset, thus it is more efficient (and less buggy)
to just do both of them in one method call. This fixes some obscure bugs
handling non-forwarded node handles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14660
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 04:45:13 +0000 (04:45 +0000)]
When folding constant expr gep's, don't force the use of long indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14658
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 02:25:24 +0000 (02:25 +0000)]
Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14657
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2004 02:20:02 +0000 (02:20 +0000)]
New testcase for PR396
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14656
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Wed, 7 Jul 2004 02:03:12 +0000 (02:03 +0000)]
Disable coalescing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14655
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 23:25:19 +0000 (23:25 +0000)]
Make sure people don't make functiontypes with an invalid return type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14654
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 6 Jul 2004 22:51:53 +0000 (22:51 +0000)]
* Add support for calling vararg functions (must pass doubles in int regs too)
* Make visitSetCondInst() share condition-generating code with EmitComparison()
* There are 13 FPRs for function-passing arguments, not 8
* Do not rely on registers being sequential, use an array lookup
* In unimplemented switch cases, send an error and abort instead of silent
fall-through
* Add doInitialization() for adding function prototypes for external math fns
* Minor changes: fix indentation, spacing, code clarity
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14653
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 6 Jul 2004 22:40:34 +0000 (22:40 +0000)]
Use the more compact `bl' instead of cryptic (but equivalent) `bcl 20,31'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14652
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Jul 2004 20:29:05 +0000 (20:29 +0000)]
Work around apparent Apple compiler bug which was making all mangled
names start with l0_.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14651
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 19:58:54 +0000 (19:58 +0000)]
Punctuate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14650
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 19:28:42 +0000 (19:28 +0000)]
Check to make sure types are sized before calling getTypeSize on them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14649
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Jul 2004 19:24:47 +0000 (19:24 +0000)]
It doesn't matter what the 2nd operand is; if the GEP has 2 operands and
the first is a zero, we should leave it alone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14648
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 6 Jul 2004 18:15:39 +0000 (18:15 +0000)]
Add helper function.
Don't touch GEPs for which DecomposeArrayRef is not going to do anything
special (e.g., < 2 indices, or 2 indices and the last one is a constant.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14647
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 17:44:17 +0000 (17:44 +0000)]
Find bugs sooner rather than later. In this case, don't allow the creation
of instructions that don't have a first-class or void type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14646
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 6 Jul 2004 17:04:09 +0000 (17:04 +0000)]
Change the "rotate by 90" xtics specification to just "rotate" which is
equivalent. The "by <angle>" syntax is not acceptable for all output
devices. Apparently the Sparc and x86 output devices (no color) don't
accept this, but should accept the plain "rotate".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14645
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 6 Jul 2004 16:03:21 +0000 (16:03 +0000)]
Do not crash when joining two intervals of registers of different
classes: just ignore that move. Thanks to Vladimir Prus who found the
bug!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14644
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 6 Jul 2004 15:32:44 +0000 (15:32 +0000)]
* Add utility functions: convert SetCC => PPC opcode and invert PPC opcode
* If SetCondInst is folded into BranchInst (and it is the only user), do not
emit code for SetCondInst
* Fix assembly opcodes in comments in visitSetCondInst()
* Fix codegen of conditional branches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14643
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 07:38:18 +0000 (07:38 +0000)]
Implement rem.ll:test3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14640
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 07:38:00 +0000 (07:38 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14639
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 07:11:42 +0000 (07:11 +0000)]
Fix a minor bug where we would go into infinite loops on some constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14638
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 07:01:22 +0000 (07:01 +0000)]
Implement InstCombine/sub.ll:test15: X % -Y === X % Y
Also, remove X % -1 = 0, because it's not true for unsigneds, and the
signed case is superceeded by this new handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14637
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 07:00:11 +0000 (07:00 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14636
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 6 Jul 2004 06:36:11 +0000 (06:36 +0000)]
Fix a bug in the unreachable block elim pass. Dropping all references on a
basic block clear()'s all of the operands lists, including phis. This
caused removePredecessor to get confused later. Because of this, we just
nuke (without prejudice) PHI nodes in unreachable blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14635
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 6 Jul 2004 01:30:36 +0000 (01:30 +0000)]
Remove definition and use of OtherVal enumerator. This just fixes a thinko.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14634
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 5 Jul 2004 22:28:02 +0000 (22:28 +0000)]
First draft completed. All sections written.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14633
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 5 Jul 2004 19:09:32 +0000 (19:09 +0000)]
Caused the labels on the small plots to be drawn vertically instead of
horizontally so they no longer overlap.
This eye-strain-lessening patch contributed by Vladimir Merzliakov. Thanks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14632
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 5 Jul 2004 19:04:27 +0000 (19:04 +0000)]
Added sections for Constant Pool, Module Global Info, and Compaction
Tables. Two more sections to go.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14631
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Jul 2004 18:05:48 +0000 (18:05 +0000)]
Add a missing "terminator" :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14630
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Jul 2004 17:55:28 +0000 (17:55 +0000)]
Structures allow only uint
arrays allow int/uint/long/ulong
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14629
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 5 Jul 2004 08:18:07 +0000 (08:18 +0000)]
- Reorganized the document contents
- Provided a "General Layout" section that currently covers just the block
structure of the bytecode file.
- Wrote the section on the Global Type Pool
- Wrote the section on differences between LLVM file format versions.
Only five sections left to write!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14628
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 5 Jul 2004 00:57:50 +0000 (00:57 +0000)]
Finalize bytecode dumping. The "handleFinish" method was getting called
too soon so the function data was not getting dumped (it was generated
after the call handleFinish). Also cleaned up the output format for
proper indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14627
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Sun, 4 Jul 2004 17:23:35 +0000 (17:23 +0000)]
Correctly compute the ration of iterations/#intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14626
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 4 Jul 2004 17:19:21 +0000 (17:19 +0000)]
Add #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14625
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 12:22:14 +0000 (12:22 +0000)]
Add #include <iostream> since Value.h doesn't include it any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14624
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 12:20:55 +0000 (12:20 +0000)]
Add #include <iostream> since Value.h does not include it any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14623
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 12:19:56 +0000 (12:19 +0000)]
Add #include <iostream> since Value.h does not #include it any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14622
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 12:19:05 +0000 (12:19 +0000)]
- remove use of isa<Type>(Val) since there's no inheritance relationship
any more. Needed for bug 122
- #include <iostream> since Value.h doesn't include it any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14621
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 12:17:44 +0000 (12:17 +0000)]
Remove use of Type::TypeTy which is no longer defined. This change needed
for bug 122 since the "Type Type" concept is gone now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14620
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 12:15:11 +0000 (12:15 +0000)]
Correct syntax typo .. ; -> :
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14619
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 12:14:17 +0000 (12:14 +0000)]
- Changes for bug 122
- Remove Tabs
- Add inserters needed since Value doesn't implement them any more
- Move some functions here to avoid cyclic header file dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14618
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:55:37 +0000 (11:55 +0000)]
- #include <iostream> since its not in Value.h any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14617
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:55:08 +0000 (11:55 +0000)]
Constify SymbolTable's use of Type* so that it never modifies them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14616
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:52:49 +0000 (11:52 +0000)]
- #include <iostream> since its not in Value.h any more.
- constify use of Type* returned from symbol table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14615
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:51:24 +0000 (11:51 +0000)]
#include <iostream> since its not in Value.h any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14614
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:50:43 +0000 (11:50 +0000)]
Adjust the slot machine to handle Types separately from Values. This was
done by doubling up the data structures so that Type based equivalents are
used. A consequence of this is overloading of function members that take a
Type* instead of a Value*. Various other cleanups related to Type != Value
(bug 122) were also implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14613
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:47:22 +0000 (11:47 +0000)]
Implementation of SlotTable went into header file. Note that this header
is currently not being used but is retained because it will be the basis
for a clean up of the SlotCalculator class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14612
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:46:15 +0000 (11:46 +0000)]
Remove Tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14611
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:45:47 +0000 (11:45 +0000)]
Implement new output functions for types and compacted type planes. Also
remove use of Type::TypeTyID and Type::TypeTy since Type no longer inherits
Value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14610
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:44:27 +0000 (11:44 +0000)]
Add new methods outputTypes and outputCompactionTypes for handling Types
separately from Values. This needed for bug 122.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14609
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:42:49 +0000 (11:42 +0000)]
For bug 122:
Separate Types from Values because Type no longer inherits from Value. The
changes for this are too numerous to list. In essence, any data structure
that contained a Value was doubled so that Types could be contained
similarly. New members include Types, TypeMap, CompactionTypes, and
CompactionTypeMap. Functions taking a Value* were overloaded with a variant
that takes a Type* that acts on the new data structures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14608
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:37:54 +0000 (11:37 +0000)]
- Type::TypeTyID doesn't exist any more (bug 122)
- Types don't have names any more, just write them on ostream directly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14606
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:36:31 +0000 (11:36 +0000)]
Move SlotCalculator.h to lib/Bytecode/Writer since that is the only place
that needs it after the Type != Value changes (bug 122).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14605
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:33:49 +0000 (11:33 +0000)]
- Don't use macros to call the BytecodeHandler
- Don't use PARSE_ERROR macro unnecessarily (for simple strings)
- Add comments before each function
- Convert for bug 122 (Type != Value)
- Handle new value range on Type::PrimitiveTypeId enumeration by augmenting
the reader with a new read_typeid method and sanitizeTypeId method.
- Remove BytecodeHandler's default method implementations to header file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14604
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:29:56 +0000 (11:29 +0000)]
Make all the virtual function (except destructor) inline so there are
default implementations without taking up a ton of space in a .cpp file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14603
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:04:56 +0000 (11:04 +0000)]
- Make ValueList an "OtherVal" user of Values to ensure it doesn't get
mistaken for anything else.
- Move function descriptions to Reader.cpp file per Chris.
- Remove tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14602
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:03:03 +0000 (11:03 +0000)]
Remove tabs. Move function declaration to Reader.h where it belongs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14601
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:01:27 +0000 (11:01 +0000)]
Add #include <iostream> which is needed now that Value.h doesn't include it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14600
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 11:00:39 +0000 (11:00 +0000)]
Excise tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14599
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 10:59:05 +0000 (10:59 +0000)]
Add a new, compatible, interface function for writing types as operands.
This is necessary because Types are no longer Values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14598
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 10:58:20 +0000 (10:58 +0000)]
Added #include <iostream> since this header is no longer picked up from
the Value.h header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14597
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 10:52:28 +0000 (10:52 +0000)]
- Remove enumerator TypeVal since Values can't be types any more
- Remove isa_impl relationship between Types and Values
- Add OtherVal so "other" users can interact with Values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14596
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 10:50:43 +0000 (10:50 +0000)]
There is no longer a "Type" primitive type because Values and Types are
now distinct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14595
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 10:49:41 +0000 (10:49 +0000)]
Constify usage of Type* on the interface to ensure SymbolTable doesn't
modify types (it never should). Clean up some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14594
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 10:48:27 +0000 (10:48 +0000)]
Remove all of the classof(const Value*) methods of the derived types since
the Type base class no longer derives from Value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14593
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 4 Jul 2004 10:46:49 +0000 (10:46 +0000)]
Make Type have no base classes. Previously it inherited Value. Also
removed the TypeTyID and TypeTy members so that the notion of the
"Type Type" is no longer present in LLVM. Various other adjustments
resulting from these changes were also made.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14592
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Sun, 4 Jul 2004 07:59:06 +0000 (07:59 +0000)]
Add efficiency statistic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14590
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Sun, 4 Jul 2004 01:30:54 +0000 (01:30 +0000)]
Add more operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14589
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 3 Jul 2004 01:21:05 +0000 (01:21 +0000)]
Fix compilation on internix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14588
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 3 Jul 2004 00:26:11 +0000 (00:26 +0000)]
Implement add.ll:test22, a common case in MSIL files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14587
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 3 Jul 2004 00:25:31 +0000 (00:25 +0000)]
Add a new testcase for folding an add into a switch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14586
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 2 Jul 2004 23:20:17 +0000 (23:20 +0000)]
Fix Type::isSized() to realize that "{ opaque }" is not sized
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14585
91177308-0d34-0410-b5e6-
96231b3b80d8