Commit Graph

14133 Commits

Author SHA1 Message Date
Reid Spencer
fc989e1ee0 Reduce the number of arguments in the instruction builder and make some
improvements on instruction selection that account for register and frame
index bases.

Patch contributed by Jeff Cohen. Thanks Jeff!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16110 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-30 00:13:26 +00:00
Reid Spencer
6386009ea6 Need to throw std::string not const char* if we want error messages to be
caught.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16109 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-30 00:06:52 +00:00
Reid Spencer
514b9671f9 Synchronize documentation of configuration items and substitutions with
current reality of llvmc implementation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16108 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 23:20:42 +00:00
Nate Begeman
6b3dc55ef8 Convert A-Form instructions to auto-generated asm writer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16107 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:45:13 +00:00
Nate Begeman
27bc7c6cae Register sizes should be specified in bits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16106 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:03:40 +00:00
Nate Begeman
d332fd54f5 Improvements to int->float cast code for PPC-64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16105 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:02:43 +00:00
Nate Begeman
2a42e80eda Must link against new LLVMsystem library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16104 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:01:44 +00:00
Nate Begeman
2f795cf12e RemoveFileOnSignal is now in sys:: namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16103 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:01:17 +00:00
Nate Begeman
81ab877a0c Put this change back in after testing from Reid proved its innocence. getSpillSize now returns value in bits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16102 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 22:00:24 +00:00
Nate Begeman
c3d479a40f Update doxygen comment now that getSpillSize is supposed to return value in bits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16101 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 21:59:26 +00:00
Reid Spencer
c0854bfcfc Add a declaration of environ global for Darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16100 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 20:10:07 +00:00
Reid Spencer
93426ba5ed Add a missing header file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16099 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 20:02:28 +00:00
Reid Spencer
1390103887 Add an assert to cature null Operands. It is better to catch it here than
to SIGSEGV in the bowels of isa<...> later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16098 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:37:59 +00:00
Reid Spencer
57ec727933 Signals support has been moved to lib/System
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16097 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:36:34 +00:00
Reid Spencer
de8c47f989 Updated to create a link needed for correct lib/System compilation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16096 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:35:28 +00:00
Reid Spencer
f13562fb97 Add lib/System ahead of lib/Support in case there are operating system
issues.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16095 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:33:21 +00:00
Reid Spencer
0172d09b64 Link with LLVMsystem.a for operating system independence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16094 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:31:19 +00:00
Reid Spencer
debb5f085a RemoveFileOnErrorSignal is now in the llvm::sys namespace. Adjust
accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16093 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:30:41 +00:00
Reid Spencer
7c4c98d986 Add the LLVMsystem.a library as it is now used for operating system
independence of the tool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16092 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:29:38 +00:00
Reid Spencer
9de7b334ec The functions in Signal.h are now in the llvm::sys namespace - adjust
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16091 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:28:55 +00:00
Reid Spencer
615edcccda add llvmc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16090 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:27:34 +00:00
Reid Spencer
52c2dc1a42 Convert llvmc to use the lib/System interface instead of directly
using Unix operating system calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16089 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:26:56 +00:00
Reid Spencer
bd4dd5c33a Move a warning comment to where it should have been in the first place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16088 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:25:54 +00:00
Reid Spencer
36853b99a1 Correct the vim: specification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16087 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:24:53 +00:00
Reid Spencer
c3de952426 Include some additional header files.
Fix the banner length.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16086 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:24:20 +00:00
Reid Spencer
496c277a6d Initial platform independent implementation of operating system concept
of "Signals" (cleanup after fatal errors).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16085 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:22:48 +00:00
Reid Spencer
52a7efafba Initial commit of an platform-indepdendent implementation for the
"Program" operating system concept (find and execute programs).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16084 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:20:41 +00:00
Reid Spencer
fd5c345a0e Put the lib/System interface functions in llvm::sys namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16083 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:19:07 +00:00
Reid Spencer
59ee43662a Create a link from $BUILD_OBJ_ROOT/lib/System/platform to
$BUILD_SRC_ROOT/lib/System/$build which gives us the ability to
configure the lib/System for the current type of operating system.
Also cleaned up some indentation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16082 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:18:05 +00:00
Nate Begeman
f2f0781a10 Implement the following missing functionality in the PPC backend:
cast fp->bool
cast ulong->fp
algebraic right shift long by non-constant value
These changes tested across most of the test suite.  Fixes Regression/casts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16081 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 08:19:32 +00:00
Reid Spencer
67d556567f Initial commit of the platform agnostic interface to finding and executing
programs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16080 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 05:29:35 +00:00
Reid Spencer
ac4b796c40 Add a function to remove whole directorys on fatal signal.
Doxygenify function comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16079 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 05:27:15 +00:00
Reid Spencer
8e66595512 Revise the design of the Path concept per peer review. Too many changes to
note individually but these essence of it is to not derive from
std::string, clarify the interface, and provide better documentation.
There is now also (untested) implementations for AIX, Darwin, and SunOS.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16078 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 05:24:01 +00:00
Alkis Evlogimenos
81bc6e377e Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16077 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-28 22:43:31 +00:00
Alkis Evlogimenos
ca5d1c378c Now that LiveIntervals::addIntervalsForSpills is fixed, do not require
LiveVariables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16076 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 19:00:29 +00:00
Alkis Evlogimenos
d8d26b3268 Only update LiveVariables if it is available. addIntervalsForSpills
runs after the initial run of the live interval analysis.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16075 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 18:59:22 +00:00
Alkis Evlogimenos
ccdf21af1f Back out this change as it broke the build last night. This should be
investicated further as the linearscan variants don't really need
LiveVariables...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16074 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 18:01:21 +00:00
Nate Begeman
bd2efb9600 Back out change to divide getSpillSize by 8 until I figure out why it breaks x86, which has register sizes in bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16073 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 16:48:24 +00:00
Nate Begeman
52ca9e4c3d Fix a typo in the bytecode format documentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16072 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 07:59:37 +00:00
Alkis Evlogimenos
3f06e68783 The linear scan variants do not require the LiveVariables analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16071 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 04:51:13 +00:00
Nate Begeman
5709998993 Register sizes are in bits, not bytes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16070 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 04:28:10 +00:00
Alkis Evlogimenos
fec656c44c Add getLastBlock member. This is useful when growing a densemap keyed
on MachineBasicBlocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16069 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 04:02:35 +00:00
Alkis Evlogimenos
6177d3f448 Add MachineBasicBlock2IndexFunctor. This is useful for densemaps from
MachineBasicBlocks to an arbitrary type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16068 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 04:00:26 +00:00
Alkis Evlogimenos
fc093bd081 Add size member function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16067 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 03:58:31 +00:00
Reid Spencer
7acb866f10 Add more content.
This isn't in reviewable shape yet, unless you're curious.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16066 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 02:08:04 +00:00
Reid Spencer
b810d5f02d Bug 430 Fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16065 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 00:48:26 +00:00
Reid Spencer
488d73a8b7 Correctly compute the number of compaction tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16064 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 00:43:51 +00:00
Reid Spencer
0033c18c47 Prevent an empty compaction table from being written to the bytecode file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16063 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-27 00:38:44 +00:00
Reid Spencer
07ea1917d0 Add the CompactionTableIsEmpty function so that we can determine if a
CompactionTable really needs to be emitted. This is not a straight forward
computation, hence the need for a member function here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16062 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26 22:32:00 +00:00
Alkis Evlogimenos
22a2f6d5b0 Use newly added API in MRegisterInfo and don't expose the allocatable
register set anymore. Its users now use the MRegisterInfo API.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16061 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-26 22:23:32 +00:00