summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Unbreak the build :(Chris Lattner2005-01-291-1/+0
| | | | llvm-svn: 19926
* Adjust to ilist changes.Chris Lattner2005-01-291-13/+25
| | | | | | | | | Based on the ilist changes avoid allocating an entire Use object for the end of the Use chain. This saves 8 bytes of memory for each Value allocated in the program. For 176.gcc, this reduces us from 69.5M -> 66.0M, a 5.3% memory savings. llvm-svn: 19925
* adjust to ilist changes.Chris Lattner2005-01-292-5/+4
| | | | llvm-svn: 19924
* Adjust to ilist changes.Chris Lattner2005-01-296-8/+11
| | | | llvm-svn: 19923
* Adjust to changes in ilistChris Lattner2005-01-293-11/+15
| | | | llvm-svn: 19922
* Rename createNode -> createSentinal.Chris Lattner2005-01-291-3/+4
| | | | | | | Add a new method, destroySentinal, that is used to delete it (instead of requiring use of delete. llvm-svn: 19921
* clean up commentsChris Lattner2005-01-291-3/+2
| | | | llvm-svn: 19920
* This has been deprecated for long enough, nuke it.Chris Lattner2005-01-291-9/+0
| | | | llvm-svn: 19919
* This file was schizophrenic when it came to representing sizes. In someChris Lattner2005-01-291-44/+45
| | | | | | | | | | cases it represented them as 'unsigned's, which are not enough for 64-bit hosts. In other cases, it represented them as uint64_t's, which are inefficient for 32-bit hosts. This patch unifies all of the sizes to use size_t instead. llvm-svn: 19918
* There is no reason to include ostream here, include iosfwd instead.Chris Lattner2005-01-291-14/+14
| | | | | | | | | | | This file was schizophrenic when it came to representing sizes. In some cases it represented them as 'unsigneds', which are not enough for 64-bit hosts. In other cases, it represented them as uint64_t's, which are inefficient for 32-bit hosts. This patch unifies all of the sizes to use size_t instead. llvm-svn: 19917
* After reading in a bc file, trim the resultant buffer down to what weChris Lattner2005-01-291-2/+12
| | | | | | really need. This reduces 4M of memory consumption reading 176.gcc. llvm-svn: 19916
* Finegrainify namespacificationChris Lattner2005-01-291-12/+14
| | | | llvm-svn: 19915
* first step towards a correct and complete stack. also add some forms for ↵Andrew Lenharth2005-01-294-12/+78
| | | | | | things that were getting stuck in the nightly tester. llvm-svn: 19914
* Due to previous simplifications, we can simplify the data structures beingChris Lattner2005-01-291-35/+36
| | | | | | used here. llvm-svn: 19913
* Properly handle volatile.Chris Lattner2005-01-291-9/+11
| | | | llvm-svn: 19912
* Remove some useless map operations. Loads/stores that are in the sameChris Lattner2005-01-291-10/+0
| | | | | | BB as the load are not included in the Cand* sets at all. llvm-svn: 19911
* Before doing expensive global analysis, check to make sure the pointer isChris Lattner2005-01-291-46/+50
| | | | | | | not invalidated on entry and on exit of the block. This fixes some N^2 behavior in common cases, and speeds up gcc another 5% to 22.35s. llvm-svn: 19910
* Fix quotes.Chris Lattner2005-01-291-1/+1
| | | | llvm-svn: 19909
* Unbreak VC++ buildJeff Cohen2005-01-291-0/+1
| | | | llvm-svn: 19908
* Minor simplification/speedup. Replaces a set lookup with a pointer comparison.Chris Lattner2005-01-291-4/+3
| | | | | | This speeds up 176.gcc from 25.73s to 23.48s, which is 9.5% llvm-svn: 19907
* Eliminate generality that is not buying us anything. In particular, thisChris Lattner2005-01-291-32/+13
| | | | | | | | | | | | | | | | | | | will cause us to miss cases where the input pointer to a load could be value numbered to another load. Something like this: %X = load int* %P1 %Y = load int* %P2 Those are obviously the same if P1/P2 are the same. The code this patch removes attempts to handle that. However, since GCSE iterates, this doesn't actually buy us anything: GCSE will first replace P1 or P2 with the other one, then the load can be value numbered as equal. Removing this code speeds up gcse a lot. On 176.gcc in debug mode, this speeds up gcse from 29.08s -> 25.73s, a 13% savings. llvm-svn: 19906
* If we see:Chris Lattner2005-01-291-4/+3
| | | | | | | | | %A = alloca int %V = load int* %A value number %V to undef, not 0. llvm-svn: 19905
* Memory used is a delta between memuse at the start of the time and theChris Lattner2005-01-292-5/+4
| | | | | | memuse at the end, thus it is signed. llvm-svn: 19904
* Unbreak VC++ buildJeff Cohen2005-01-291-3/+0
| | | | llvm-svn: 19903
* Make sure that we always grow a multiple of 2 operands.Chris Lattner2005-01-291-2/+3
| | | | llvm-svn: 19902
* noteworthy.Chris Lattner2005-01-291-0/+2
| | | | llvm-svn: 19901
* Adjust to changes in instruction interfaces.Chris Lattner2005-01-293-10/+11
| | | | llvm-svn: 19900
* Switchinst takes a hint for the number of cases it will have.Chris Lattner2005-01-291-1/+1
| | | | llvm-svn: 19899
* switchinst ctor now takes a hint for the number of cases that it will have.Chris Lattner2005-01-292-3/+3
| | | | llvm-svn: 19898
* Adjust Valuehandle to hold its operand directly in it.Chris Lattner2005-01-292-7/+7
| | | | llvm-svn: 19897
* Finegrainify namespacification.Chris Lattner2005-01-292-24/+27
| | | | | | Adjust TmpInstruction to work with the new User model. llvm-svn: 19896
* add namespace qualifierChris Lattner2005-01-291-1/+2
| | | | llvm-svn: 19895
* Adjust to changes in User class and minor changes in instruction ctors.Chris Lattner2005-01-292-21/+25
| | | | llvm-svn: 19894
* Adjust to slight changes in instruction interfaces.Chris Lattner2005-01-291-3/+3
| | | | llvm-svn: 19893
* Adjust to changes in User class.Chris Lattner2005-01-294-18/+18
| | | | llvm-svn: 19892
* Merge InstrTypes.cpp into this fileChris Lattner2005-01-291-193/+424
| | | | | | | | Adjust to changes in the User class, operand handling is very different. PHI node and switch statements must handle explicit resizing of operand lists. llvm-svn: 19891
* Adjust to changes in User class. Aggregate constants now must explicitlyChris Lattner2005-01-291-46/+81
| | | | | | manage their operands. llvm-svn: 19890
* This file is now merged into Instructions.cppChris Lattner2005-01-291-64/+0
| | | | llvm-svn: 19889
* Adjust to changes in the User class.Chris Lattner2005-01-294-21/+30
| | | | llvm-svn: 19888
* Adjust to changes in the User class. Introduce a new UnaryInstructionChris Lattner2005-01-291-21/+76
| | | | | | class. llvm-svn: 19887
* Adjust to user changes.Chris Lattner2005-01-291-4/+3
| | | | llvm-svn: 19886
* Many changes to cope with the User.h changes. Instructions now generallyChris Lattner2005-01-291-232/+304
| | | | | | directly embed their operands. llvm-svn: 19885
* Adjust to User.h changes.Chris Lattner2005-01-292-8/+12
| | | | llvm-svn: 19884
* Instead of storing operands as std::vector<Use>, just maintain a pointerChris Lattner2005-01-291-32/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and num operands in the User class. this allows us to embed the operands directly in the subclasses if possible. For example, for binary operators we store the two operands in the derived class. The has several effects: 1. it improves locality because the operands and instruction are together 2. it makes accesses to operands faster (one less load) if you access them through the derived class pointer. For example this: Value *GetBinaryOperatorOp(BinaryOperator *I, int i) { return I->getOperand(i); } Was compiled to: _Z19GetBinaryOperatorOpPN4llvm14BinaryOperatorEi: movl 4(%esp), %edx movl 8(%esp), %eax sall $4, %eax movl 24(%edx), %ecx addl %ecx, %eax movl (%eax), %eax ret and is now compiled to: _Z19GetBinaryOperatorOpPN4llvm14BinaryOperatorEi: movl 8(%esp), %eax movl 4(%esp), %edx sall $4, %eax addl %edx, %eax movl 44(%eax), %eax ret Accesses through "Instruction*" are unmodified. 3. This reduces memory consumption (by about 3%) by eliminating 1 word of vector overhead and a malloc header on a seperate object. 4. This speeds up gccas about 10% (both debug and release builds) on large things (such as 176.gcc). For example, it takes a debug build from 172.9 -> 155.6s and a release gccas from 67.7 -> 61.8s llvm-svn: 19883
* fix ExprMap, partially teach about add longAndrew Lenharth2005-01-281-32/+85
| | | | llvm-svn: 19882
* Fix a nasty thinko in my previous commit.Chris Lattner2005-01-281-1/+1
| | | | llvm-svn: 19881
* Alpha doesn't have a native f32 extload instruction.Chris Lattner2005-01-281-1/+5
| | | | llvm-svn: 19880
* implement legalization of truncates whose results and sources need to beChris Lattner2005-01-281-2/+5
| | | | | | truncated, e.g. (truncate:i8 something:i16) on a 32 or 64-bit RISC. llvm-svn: 19879
* Get alpha working with memset/memcpy/memmoveChris Lattner2005-01-281-5/+29
| | | | llvm-svn: 19878
* Fix some typos in the Makefile.rules.Reid Spencer2005-01-281-3/+3
| | | | | | Patch contributed by Vladimer Merzliakov. llvm-svn: 19877
OpenPOWER on IntegriCloud