Commit Graph

7688 Commits

Author SHA1 Message Date
Chris Lattner e81c2aa42a Implement new changeFunction method, nuke a never implemented one.
llvm-svn: 16386
2004-09-18 00:22:13 +00:00
Chris Lattner 5065b240c8 Fix typo in comment
llvm-svn: 16384
2004-09-17 03:58:39 +00:00
Reid Spencer 90debc5e2e Make sure critical sections are entered before trying to leave them.
Add some additional commentary about the workings of this module.

Patch contributed by Jeff Cohen. Thanks Jeff!

llvm-svn: 16383
2004-09-17 03:02:27 +00:00
Reid Spencer 16b7bad55e Allow "bc" as suffix for bytecode files.
llvm-svn: 16381
2004-09-16 16:36:10 +00:00
Reid Spencer 4aff78acbb Implement the signals interface for Win32.
Patch provided by Jeff Cohen. Thanks Jeff!

llvm-svn: 16380
2004-09-16 15:53:16 +00:00
Chris Lattner 9face5eb1f Add a newline
llvm-svn: 16369
2004-09-15 17:53:52 +00:00
Reid Spencer 6614946443 Convert code to compile with vc7.1.
Patch contributed by Paolo Invernizzi. Thanks Paolo!

llvm-svn: 16368
2004-09-15 17:06:42 +00:00
Chris Lattner 6fa9665095 Add some assertions
llvm-svn: 16366
2004-09-15 16:59:47 +00:00
Reid Spencer b88212ee1b Patches to make this file actually compile under windows.
Patches submitted by Jeff Cohen. Thanks Jeff!

llvm-svn: 16362
2004-09-15 05:49:50 +00:00
Reid Spencer 7e2c236fcd Initial version of the SysConfig abstraction for Win32.
llvm-svn: 16361
2004-09-15 05:48:49 +00:00
Reid Spencer 0f0c5cfb19 First version of a common header file for Win32 implementations.
llvm-svn: 16360
2004-09-15 05:48:11 +00:00
Reid Spencer 91886b791f Initial implementation of the Process abstraction for Win32.
llvm-svn: 16359
2004-09-15 05:47:40 +00:00
Reid Spencer 0de7bc1c3d Fix the interface to ReleaseRWX to take MemoryBlock& not Memory&
llvm-svn: 16356
2004-09-15 03:55:45 +00:00
Chris Lattner f11216d24f Fix a bug in the previous checkin that broke 255.vortex
llvm-svn: 16355
2004-09-15 02:34:40 +00:00
Alkis Evlogimenos 0507ffebb1 When creating constant arrays check that the initializer vector is the
same size as the one in the array type.

llvm-svn: 16354
2004-09-15 02:32:15 +00:00
Misha Brukman 4bf01357e1 Fit long lines into 80 cols via creative space elimination
llvm-svn: 16353
2004-09-15 01:40:18 +00:00
Misha Brukman 9511910e11 Wrap long line
llvm-svn: 16352
2004-09-15 01:34:42 +00:00
Misha Brukman 2d01db846b Targets are independent of each other, so compile them in parallel
llvm-svn: 16351
2004-09-15 01:34:25 +00:00
Chris Lattner a346578d92 Make sure to update alias analysis information as we transform the function.
This fixes PR420 and Regression/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.llx

llvm-svn: 16348
2004-09-15 01:04:07 +00:00
Chris Lattner 9b9932bd94 If given an AliasSetTracker object to update, update it.
llvm-svn: 16347
2004-09-15 01:02:54 +00:00
Chris Lattner ab64481f1d Implement an AliasSetTracker::copyValue method
llvm-svn: 16344
2004-09-14 19:15:32 +00:00
Chris Lattner f41b80a05f Remove a long-dead pass. Actually, this pass was never used at all.
llvm-svn: 16337
2004-09-14 16:33:01 +00:00
Reid Spencer 853d250b0a Fix a compilation error.
llvm-svn: 16335
2004-09-14 15:42:11 +00:00
Reid Spencer f27c4cde06 Okay, the list of link-time passes wasn't such a hot idea. Its prone to
error. We'll strategize on this when we have multiple front ends to deal
with. For now llvm-ld just runs a standard set of transforms.

llvm-svn: 16333
2004-09-14 05:43:23 +00:00
Chris Lattner 2cdd49de2a Don't print newlines between passes in the pass list.
Note to self: sentences end with ".", not "...".
Note to reid: sentences end with ".", not "".   :)

llvm-svn: 16332
2004-09-14 05:06:58 +00:00
Chris Lattner 730cfe431a Don't print newlines between each library in the deplibs list.
llvm-svn: 16331
2004-09-14 04:51:44 +00:00
Chris Lattner e8e81a2941 Revamp the Register class, and allow the use of the RegisterGroup class to
specify aliases directly in register definitions.

Patch contributed by Jason Eckhardt!

llvm-svn: 16330
2004-09-14 04:17:02 +00:00
Reid Spencer df05ec7e0d Implement the GetLibraryPath function.
llvm-svn: 16323
2004-09-14 00:16:39 +00:00
Reid Spencer b9e0877223 Add support for the link-time pass list to Modules.
llvm-svn: 16321
2004-09-13 23:44:23 +00:00
Reid Spencer f7948483d2 Simplify the sys::Memory interface per Chris' request.
llvm-svn: 16318
2004-09-13 22:38:11 +00:00
Reid Spencer 07369430c4 Clean up the interface and implementation of sys::Program so that it is
cleanly dissociated from the sys::Path class.

llvm-svn: 16315
2004-09-13 21:48:44 +00:00
Chris Lattner 247c29e4b0 Changes to make this work with Jason's patch. I checked this by hand, but
would appreciate if others would also look at this to make sure I didn't
botch something obvious

llvm-svn: 16312
2004-09-13 21:32:03 +00:00
Misha Brukman 72be9ae024 Fix filename: Printer.cpp has become X86AsmPrinter.cpp
llvm-svn: 16299
2004-09-12 21:26:04 +00:00
Misha Brukman 14756e8e1c Unbreak doxygen, according to Reid.
llvm-svn: 16298
2004-09-12 20:56:38 +00:00
Misha Brukman dbcd4fda49 Fix code spacing/alignment
llvm-svn: 16297
2004-09-12 20:47:33 +00:00
Reid Spencer 55a96ee8f5 Fix typo: sterror -> strerror
llvm-svn: 16294
2004-09-11 20:18:08 +00:00
Reid Spencer fda2fe9f1e Correct the dynamic lib suffix on Darwin.
llvm-svn: 16293
2004-09-11 07:35:01 +00:00
Reid Spencer 566ac28f35 Provide initial implementations of Memory and Process concepts for various
platforms.
Implement GetLLVMSuffix function for the Path concept.

llvm-svn: 16292
2004-09-11 04:59:30 +00:00
Reid Spencer 2896c95bca Provide a generic Unix implementation of the Memory concept.
llvm-svn: 16291
2004-09-11 04:57:25 +00:00
Reid Spencer 33b9d77b89 Provide a generic unix implementation of the Process abstraction.
llvm-svn: 16290
2004-09-11 04:56:56 +00:00
Reid Spencer ae9bbda50a Implemented support for detecting file types by magic number, stripping
path and suffix to leave basename, and getting the DLL suffix.

llvm-svn: 16289
2004-09-11 04:55:08 +00:00
Reid Spencer 2d20d765d8 Implementation of Process concept for SUSv2 platforms.
llvm-svn: 16288
2004-09-11 04:54:06 +00:00
Reid Spencer 96019262ca Convert the Emitter to use the lib/System "Memory" interface instead of the
old SystemUtils.h interface to allocate RWX blocks of memory.

llvm-svn: 16286
2004-09-11 04:31:03 +00:00
Reid Spencer 1b34fde1cc Implement support for dependent libraries. The "source" module's dependent
libraries list is merged into the "destination" module's list. Also, if the
source module is one of the dependent libraries, it is removed from the
list.

llvm-svn: 16282
2004-09-11 04:25:17 +00:00
Reid Spencer 14072a3f54 Change interface to use correct typedef so it will always compile.
llvm-svn: 16281
2004-09-11 04:22:58 +00:00
Reid Spencer c90a765368 Print the dependent libraries when dumping bytecode.
llvm-svn: 16275
2004-09-11 04:14:07 +00:00
Misha Brukman 04bbe6fa25 Renamed file to SparcV8ISelSimple.cpp
llvm-svn: 16267
2004-09-10 18:51:12 +00:00
Brian Gaeke 86584749b6 Roll back constant printing changes until the problems with larger
programs and C++ can be looked at in detail.

llvm-svn: 16266
2004-09-10 18:01:45 +00:00
Alkis Evlogimenos cb031d9518 Add assertion descriptiosn on type mismatches when creating
ConstantArray and ConstantPacked objects.

llvm-svn: 16261
2004-09-10 04:16:59 +00:00
Alkis Evlogimenos 213e6db9ce Grow the map on entry so that we don't crash if joinIntervals never
runs (if coalescing is disabled for example).

llvm-svn: 16259
2004-09-09 19:24:38 +00:00
Alkis Evlogimenos 371403193c Use a shorter form to express implicit use/defs in FpGETRESULT and
FpSETRESULT.

llvm-svn: 16247
2004-09-08 18:29:31 +00:00
Alkis Evlogimenos 8b700215ed A call instruction should implicitely define ST0 since the return
value is returned in that register. The pseudo instructions
FpGETRESULT and FpSETRESULT shold also have an implicity use and def
of ST0 repsecitvely.

llvm-svn: 16246
2004-09-08 16:54:54 +00:00
Brian Gaeke acafb39cc3 This file does not need <iostream>, I think.
llvm-svn: 16245
2004-09-08 04:10:52 +00:00
Alkis Evlogimenos adb2ce2962 Use a DenseMap for mapping reg->reg. This improves the LiveInterval
analysis running time from 2.7869secs to 2.5226secs on 176.gcc.

llvm-svn: 16244
2004-09-08 03:01:50 +00:00
Nate Begeman 54bcf2db01 Add 64 bit divide instructions, and use them
llvm-svn: 16198
2004-09-06 18:46:59 +00:00
Alkis Evlogimenos 58350a7435 Indent to 2 spaces and cleanup excess whitespace.
llvm-svn: 16188
2004-09-05 18:41:35 +00:00
Alkis Evlogimenos fcb3f5197e Indent to 2 spaces.
llvm-svn: 16187
2004-09-05 18:39:20 +00:00
Misha Brukman 175fdd4678 * Change PPC32AsmPrinter => PowerPCAsmPrinter since it is now shared between
Darwin and AIX and is not 32- or 64-bit specific
* Bring back PowerPC.td as a result, to make it use the `PowerPC' class name
* Adjust Makefile accordingly

llvm-svn: 16174
2004-09-05 02:42:44 +00:00
Misha Brukman 4acadb3af7 Renamed PPC32AsmPrinter.cpp => PowerPCAsmPrinter.cpp as the Darwin and AIX asm
printers are now unified into one file.

llvm-svn: 16173
2004-09-05 02:27:37 +00:00
Nate Begeman 4d847047a0 Include MathExtras.h to fix build breakage, thanks to Vladimir
llvm-svn: 16164
2004-09-04 14:51:26 +00:00
Nate Begeman 4bfceb1ed5 All PPC instructions are now auto-printed
32 and 64 bit AsmWriters unified
Darwin and AIX specific features of AsmWriter split out

llvm-svn: 16163
2004-09-04 05:00:00 +00:00
Reid Spencer 0ded30aec4 Clean up some "clean:" targets so they use $(VERB) and don't print anything
by default, like every other "clean" target in LLVM.

llvm-svn: 16161
2004-09-03 23:19:53 +00:00
Misha Brukman 14a2b4628d Order #includes alphabetically, local .h files first.
llvm-svn: 16153
2004-09-03 18:25:53 +00:00
Alkis Evlogimenos a5c04ee50f Fixes to make LLVM compile with vc7.1.
Patch contributed by Paolo Invernizzi!

llvm-svn: 16152
2004-09-03 18:19:51 +00:00
Alkis Evlogimenos 9f82237f4e Change the way we choose a free register: instead of picking the first
free allocatable register, we prefer the a free one with the most uses
of inactive intervals.

llvm-svn: 16148
2004-09-02 21:24:33 +00:00
Alkis Evlogimenos 095c3a80f3 Change the way we choose a free register: instead of picking the first
free allocatable register, we prefer the a free one with the most uses
of inactive intervals. This causes less spills and performes a bit
better compared to gcc:

Program                 | GCC/LLC (Before)| GCC/LLC (After)
164.gzip/164.gzip       | 0.59            | 0.60
175.vpr/175.vpr         | 0.57            | 0.58
176.gcc/176.gcc         | 0.59            | 0.61
181.mcf/181.mcf         | 0.94            | 0.95
186.crafty/186.crafty   | 0.62            | 0.62
197.parser/197.parser   | 0.89            | 0.88
252.eon/252.eon         | 0.61            | 0.66
253.perlbmk/253.perlbmk | 0.79            | 0.84
254.gap/254.gap         | 0.81            | 0.81
255.vortex/255.vortex   | 0.92            | 0.93
256.bzip2/256.bzip2     | 0.69            | 0.69
300.twolf/300.twolf     | 0.91            | 0.90

llvm-svn: 16147
2004-09-02 21:23:32 +00:00
Alkis Evlogimenos dcbf893095 We don't need to sort the added vector as unhandled intervals are
stored in a binary heap.

llvm-svn: 16143
2004-09-02 18:00:38 +00:00
Nate Begeman 6173878304 Convert remaining X-Form and Pseudo instructions over to asm writer
llvm-svn: 16142
2004-09-02 08:13:00 +00:00
Brian Gaeke c6e81f0fde Back to compiling land for v8
llvm-svn: 16138
2004-09-02 02:37:43 +00:00
Reid Spencer 7c16caa336 Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.

llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Alkis Evlogimenos fae8f6a4fb Be a bit more efficient when processing the active and inactive
lists. Instead of scanning the vector backwards, scan it forward and
swap each element we want to erase. Then at the end erase all removed
intervals at once. This doesn't save much: 0.08s out of 4s when
compiling 176.gcc.

llvm-svn: 16136
2004-09-01 22:52:29 +00:00
Alkis Evlogimenos 6a099d439e Give a better assertion if we see a use before a def.
llvm-svn: 16135
2004-09-01 22:34:52 +00:00
Reid Spencer f4e546b7aa mkdtemp doesn't exist on Cygwin. Use tempnam & mkdir instead.
llvm-svn: 16133
2004-09-01 20:29:35 +00:00
Reid Spencer 9501b9b82b Make CommandLine prefix error output with the name of the program.
llvm-svn: 16129
2004-09-01 04:41:28 +00:00
Reid Spencer 8c73e0041a Add support for FreeBSD
llvm-svn: 16127
2004-08-31 18:09:35 +00:00
Reid Spencer f2531a1568 Add support for Interix and FreeBSD
llvm-svn: 16126
2004-08-31 18:03:23 +00:00
Reid Spencer b14809c51d Actually define PreventCoreFiles in the sys namespace.
llvm-svn: 16125
2004-08-31 17:53:41 +00:00
Reid Spencer 4f48470d84 Add a new abstraction, SysConfig for platform independent system
configuration calls. Right now this just contains PreventCoreFiles so that
bugpoint can by platform independent.

llvm-svn: 16124
2004-08-31 17:43:29 +00:00
Alkis Evlogimenos b84f0be5b1 Minor code clarity changes.
llvm-svn: 16123
2004-08-31 17:39:15 +00:00
Nate Begeman a113d74e4c convert M and MD form instructions to generated asm writer
llvm-svn: 16121
2004-08-31 02:28:08 +00:00
Reid Spencer 79d4c3d5db Move the GetTemporaryDirectory function from "generic Unix" to platform
specific.

llvm-svn: 16119
2004-08-30 21:46:55 +00:00
Reid Spencer f98fff36ef Add inclusion of assert.h
llvm-svn: 16118
2004-08-30 16:03:54 +00:00
Nate Begeman 143cf94f92 Move yet more instructions over to being printed by the generated asm writer
llvm-svn: 16112
2004-08-30 02:28:06 +00:00
Reid Spencer b55c0cbaee Abbreviate the long descriptions which are now in docs/SystemLibrary.html.
llvm-svn: 16111
2004-08-30 02:03:51 +00:00
Reid Spencer 8aca0b494d 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!

llvm-svn: 16110
2004-08-30 00:13:26 +00:00
Nate Begeman 6cdbd22245 Convert A-Form instructions to auto-generated asm writer
llvm-svn: 16107
2004-08-29 22:45:13 +00:00
Nate Begeman 434234f6d1 Register sizes should be specified in bits
llvm-svn: 16106
2004-08-29 22:03:40 +00:00
Nate Begeman 8cb6bd5f3c Improvements to int->float cast code for PPC-64
llvm-svn: 16105
2004-08-29 22:02:43 +00:00
Nate Begeman c9dec3ae70 Put this change back in after testing from Reid proved its innocence. getSpillSize now returns value in bits
llvm-svn: 16102
2004-08-29 22:00:24 +00:00
Reid Spencer 023637eb38 Add a declaration of environ global for Darwin
llvm-svn: 16100
2004-08-29 20:10:07 +00:00
Reid Spencer 3311669903 Add an assert to cature null Operands. It is better to catch it here than
to SIGSEGV in the bowels of isa<...> later.

llvm-svn: 16098
2004-08-29 19:37:59 +00:00
Reid Spencer 6fca37236d Signals support has been moved to lib/System
llvm-svn: 16097
2004-08-29 19:36:34 +00:00
Reid Spencer b8c572df56 Move a warning comment to where it should have been in the first place.
llvm-svn: 16088
2004-08-29 19:25:54 +00:00
Reid Spencer bb5301eebf Correct the vim: specification
llvm-svn: 16087
2004-08-29 19:24:53 +00:00
Reid Spencer 2f209c4452 Include some additional header files.
Fix the banner length.

llvm-svn: 16086
2004-08-29 19:24:20 +00:00
Reid Spencer 3d7a614ec7 Initial platform independent implementation of operating system concept
of "Signals" (cleanup after fatal errors).

llvm-svn: 16085
2004-08-29 19:22:48 +00:00
Reid Spencer 76b83a1869 Initial commit of an platform-indepdendent implementation for the
"Program" operating system concept (find and execute programs).

llvm-svn: 16084
2004-08-29 19:20:41 +00:00
Nate Begeman 4483df8b63 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

llvm-svn: 16081
2004-08-29 08:19:32 +00:00
Reid Spencer 6df221d50a 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.

llvm-svn: 16078
2004-08-29 05:24:01 +00:00
Alkis Evlogimenos c227d73e5f Remove dead code.
llvm-svn: 16077
2004-08-28 22:43:31 +00:00