llvm-6502/include/llvm
Chris Lattner a266197489 Switch from using an ilist for uses to using a custom doubly linked list.
This list does not provide the ability to go backwards in the list (its
more of an unordered collection, stored in the shape of a list).

This change means that use iterators are now only forward iterators, not
bidirectional.

This improves the memory usage of use lists from '5 + 4*#use' per value to
'1 + 4*#use'.  While it would be better to reduce the multiplied factor,
I'm not smart enough to do so.  This list also has slightly more efficient
operators for manipulating list nodes (a few less loads/stores), due to not
needing to be able to iterate backwards through the list.

This change reduces the memory footprint required to hold 176.gcc from
66.025M -> 57.687M, a 14% reduction.  It also speeds up the compiler,
7.73% in the case of bytecode loading alone (release build loading 176.gcc).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19956 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-01 01:22:06 +00:00
..
ADT Improve conformance with the Misha spelling benchmark suite 2005-01-30 00:09:23 +00:00
Analysis * Make some methods more const correct. 2005-01-30 23:51:02 +00:00
Assembly Add llvm-as project to Visual Studio 2005-01-01 20:51:41 +00:00
Bytecode Improve compatibility with aCC on HPUX. Patch by Duraid Madina 2005-01-16 01:22:18 +00:00
CodeGen Improve spelling 2005-01-30 00:13:34 +00:00
Config Provide support for HP/UX aCC compiler's variant of hash_map and hash_set 2005-01-16 02:58:39 +00:00
Debugger For PR351: \ 2004-12-13 17:01:53 +00:00
ExecutionEngine Add a convenience function for clearing the two global areas. 2004-12-13 16:22:32 +00:00
Support Switch from using an ilist for uses to using a custom doubly linked list. 2005-02-01 01:22:06 +00:00
System Do not clean up if the MappedFile was never used or if the client already 2005-01-28 16:08:23 +00:00
Target Add a new method, described in the comment. 2005-01-19 06:53:02 +00:00
Transforms Get VC++ compiling again 2005-01-28 07:29:32 +00:00
AbstractTypeUser.h
Argument.h
BasicBlock.h Improve conformance with the Misha spelling benchmark suite 2005-01-30 00:09:23 +00:00
CallGraphSCCPass.h
Constant.h Adjust to user changes. 2005-01-29 00:32:00 +00:00
Constants.h Adjust to changes in the User class. 2005-01-29 00:33:00 +00:00
DerivedTypes.h Fix VC++ compilation error 2005-01-08 22:44:06 +00:00
Function.h Improve conformance with the Misha spelling benchmark suite 2005-01-30 00:09:23 +00:00
GlobalValue.h Adjust to changes in the User class. 2005-01-29 00:33:00 +00:00
GlobalVariable.h Adjust to changes in the User class. 2005-01-29 00:33:00 +00:00
InstrTypes.h Adjust to changes in the User class. Introduce a new UnaryInstruction 2005-01-29 00:32:51 +00:00
Instruction.def
Instruction.h Adjust to changes in the User class. 2005-01-29 00:33:00 +00:00
Instructions.h Many changes to cope with the User.h changes. Instructions now generally 2005-01-29 00:31:36 +00:00
IntrinsicInst.h Fix bountiful sources of VC++ 'possible loss of data' warnings 2005-01-01 18:58:23 +00:00
Intrinsics.h
Linker.h Completely rewrite the interface to be class based 2004-12-13 02:58:05 +00:00
Module.h Improve conformance with the Misha spelling benchmark suite 2005-01-30 00:09:23 +00:00
ModuleProvider.h
Pass.h For PR387:\ 2004-12-07 08:11:11 +00:00
PassAnalysisSupport.h
PassManager.h
PassSupport.h
SymbolTable.h Fix typeo 2004-12-05 06:33:15 +00:00
SymbolTableListTraits.h
Type.def
Type.h primitive' has no a' 2005-01-24 16:28:03 +00:00
Use.h Switch from using an ilist for uses to using a custom doubly linked list. 2005-02-01 01:22:06 +00:00
User.h Instead of storing operands as std::vector<Use>, just maintain a pointer 2005-01-29 00:29:39 +00:00
Value.h Switch from using an ilist for uses to using a custom doubly linked list. 2005-02-01 01:22:06 +00:00