oota-llvm.git
18 years agoFor PR495:
Reid Spencer [Thu, 7 Jul 2005 23:21:43 +0000 (23:21 +0000)]
For PR495:
Get rid of the difference between file paths and directory paths. The Path
class now simply stores a path that can refer to either a file or a
directory. This required various changes in the implementation and interface
of the class with the corresponding impact to its users. Doxygen comments were
also updated to reflect these changes. Interface changes are:

appendDirectory -> appendComponent
appendFile -> appendComponent
elideDirectory -> eraseComponent
elideFile -> eraseComponent
elideSuffix -> eraseSuffix
renameFile -> rename
setDirectory -> set
setFile -> set

Changes pass Dejagnu and llvm-test/SingleSource tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22349 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix a problem that instcombine would hit when dealing with unreachable code.
Chris Lattner [Thu, 7 Jul 2005 20:40:38 +0000 (20:40 +0000)]
Fix a problem that instcombine would hit when dealing with unreachable code.
Because the instcombine has to scan the entire function when it starts up
to begin with, we might as well do it in DFO so we can nuke unreachable code.

This fixes: Transforms/InstCombine/2005-07-07-DeadPHILoop.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22348 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoNew testcase distilled from a large chunk of code Misha sent me.
Chris Lattner [Thu, 7 Jul 2005 20:39:45 +0000 (20:39 +0000)]
New testcase distilled from a large chunk of code Misha sent me.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22347 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoclean up prolouge and epilouge
Andrew Lenharth [Thu, 7 Jul 2005 19:52:58 +0000 (19:52 +0000)]
clean up prolouge and epilouge

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22346 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFor PR495:
Reid Spencer [Thu, 7 Jul 2005 18:21:42 +0000 (18:21 +0000)]
For PR495:
Change interface to Path class:
readable -> canRead
writable -> canWrite
executable -> canExecute

More (incremental) changes coming to close 495.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22345 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRestore some code that was accidentally removed by Nate's patch yesterday.
Chris Lattner [Thu, 7 Jul 2005 17:12:53 +0000 (17:12 +0000)]
Restore some code that was accidentally removed by Nate's patch yesterday.
This fixes the regressions from last night.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22344 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd support for emitting the symbol table (and its string table) of the
Chris Lattner [Thu, 7 Jul 2005 07:02:20 +0000 (07:02 +0000)]
Add support for emitting the symbol table (and its string table) of the
module to the ELF file.  Test it by adding support for emitting common
symbols.  This allows us to compile this:

%X = weak global int 0
%Y = weak global int 0
%Z = weak global int 0

to an elf file that 'readelf's this:

Symbol table '.symtab' contains 4 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 00000004     4 OBJECT  GLOBAL DEFAULT  COM X
     2: 00000004     4 OBJECT  GLOBAL DEFAULT  COM Y
     3: 00000004     4 OBJECT  GLOBAL DEFAULT  COM Z

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22343 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd support for building/representing the symbol table, add some enum constants
Chris Lattner [Thu, 7 Jul 2005 07:00:37 +0000 (07:00 +0000)]
Add support for building/representing the symbol table, add some enum constants

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22342 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix a typo in my checkin today that caused regressions. Oops!
Nate Begeman [Thu, 7 Jul 2005 06:32:01 +0000 (06:32 +0000)]
Fix a typo in my checkin today that caused regressions.  Oops!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22341 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFirst round of support for doing scalar FP using the SSE2 ISA extension and
Nate Begeman [Wed, 6 Jul 2005 18:59:04 +0000 (18:59 +0000)]
First round of support for doing scalar FP using the SSE2 ISA extension and
XMM registers.  There are many known deficiencies and fixmes, which will be
addressed ASAP.  The major benefit of this work is that it will allow the
LLVM register allocator to allocate FP registers across basic blocks.

The x86 backend will still default to x87 style FP.  To enable this work,
you must pass -enable-sse-scalar-fp and either -sse2 or -sse3 to llc.

An example before and after would be for:
double foo(double *P) { double Sum = 0; int i; for (i = 0; i < 1000; ++i)
                        Sum += P[i]; return Sum; }

The inner loop looks like the following:
x87:
.LBB_foo_1:     # no_exit
        fldl (%esp)
        faddl (%eax,%ecx,8)
        fstpl (%esp)
        incl %ecx
        cmpl $1000, %ecx
        #FP_REG_KILL
        jne .LBB_foo_1  # no_exit

SSE2:
        addsd (%eax,%ecx,8), %xmm0
        incl %ecx
        cmpl $1000, %ecx
        #FP_REG_KILL
        jne .LBB_foo_1  # no_exit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22340 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake several cleanups to Andrews varargs change:
Chris Lattner [Tue, 5 Jul 2005 19:58:54 +0000 (19:58 +0000)]
Make several cleanups to Andrews varargs change:

1. Pass Value*'s into lowering methods so that the proper pointers can be
   added to load/stores from the valist
2. Intrinsics that return void should only return a token chain, not a token
   chain/retval pair.
3. Rename LowerVAArgNext -> LowerVAArg, because VANext is long gone.
4. Now that we have Value*'s available in the lowering methods, pass them
   into any load/stores from the valist that are emitted

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22339 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake several cleanups to Andrews varargs change:
Chris Lattner [Tue, 5 Jul 2005 19:57:53 +0000 (19:57 +0000)]
Make several cleanups to Andrews varargs change:

1. Pass Value*'s into lowering methods so that the proper pointers can be
   added to load/stores from the valist
2. Intrinsics that return void should only return a token chain, not a token
   chain/retval pair.
3. Rename LowerVAArgNext -> LowerVAArg, because VANext is long gone.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22338 91177308-0d34-0410-b5e6-96231b3b80d8

18 years ago2 fixes:
Andrew Lenharth [Tue, 5 Jul 2005 19:52:39 +0000 (19:52 +0000)]
2 fixes:

1: Legalize operand in UINT_TO_FP expanision

2: SRA x, const i8 was not promoting the constant to shift amount type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22337 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFit to 80 columns
Chris Lattner [Tue, 5 Jul 2005 17:50:16 +0000 (17:50 +0000)]
Fit to 80 columns

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22336 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix PowerPC varargs
Chris Lattner [Tue, 5 Jul 2005 17:48:31 +0000 (17:48 +0000)]
Fix PowerPC varargs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22335 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agooops
Andrew Lenharth [Tue, 5 Jul 2005 16:36:18 +0000 (16:36 +0000)]
oops

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22334 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoupdates
Andrew Lenharth [Tue, 5 Jul 2005 15:18:33 +0000 (15:18 +0000)]
updates

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22333 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agocheck the correct VT
Andrew Lenharth [Mon, 4 Jul 2005 20:07:21 +0000 (20:07 +0000)]
check the correct VT

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22332 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agofix loading address of fp symbols
Andrew Lenharth [Sun, 3 Jul 2005 20:06:13 +0000 (20:06 +0000)]
fix loading address of fp symbols

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22331 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoPercolate the call up to the right superclass
Chris Lattner [Sun, 3 Jul 2005 17:34:39 +0000 (17:34 +0000)]
Percolate the call up to the right superclass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22330 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoI really didn't think this was necessary. But, Legalize wasn't running again
Andrew Lenharth [Sat, 2 Jul 2005 20:58:53 +0000 (20:58 +0000)]
I really didn't think this was necessary.  But, Legalize wasn't running again
and legalizing the extload.  Strange.  Should fix most alpha regressions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22329 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdding new files to Visual Studio projects.
Jeff Cohen [Sat, 2 Jul 2005 02:04:26 +0000 (02:04 +0000)]
Adding new files to Visual Studio projects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22328 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoThe statistic needs to be in the correct namespace.
Nate Begeman [Fri, 1 Jul 2005 23:56:38 +0000 (23:56 +0000)]
The statistic needs to be in the correct namespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22327 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoVarargs is apparently currently broken on PPC. This hacks it so that it
Chris Lattner [Fri, 1 Jul 2005 23:11:56 +0000 (23:11 +0000)]
Varargs is apparently currently broken on PPC.  This hacks it so that it
is at least overloading the right virtual methods.  The implementations
are currently wrong though.  This fixes Ptrdist/bc, but not other programs
(e.g. siod).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22326 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRefactor X86AsmPrinter.cpp into multiple files. Patch contributed
Chris Lattner [Fri, 1 Jul 2005 22:44:09 +0000 (22:44 +0000)]
Refactor X86AsmPrinter.cpp into multiple files.  Patch contributed
by Aaron Gray, cleaned up by me.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22324 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosimplify call code, remove pseudo ops for div and rem, track more loads and stores
Andrew Lenharth [Fri, 1 Jul 2005 19:14:02 +0000 (19:14 +0000)]
simplify call code, remove pseudo ops for div and rem, track more loads and stores

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22323 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosimplify call code, remove pseudo ops for div and rem, track more loads and stores
Andrew Lenharth [Fri, 1 Jul 2005 19:12:13 +0000 (19:12 +0000)]
simplify call code, remove pseudo ops for div and rem, track more loads and stores

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22322 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove some debugging code
Chris Lattner [Fri, 1 Jul 2005 06:40:58 +0000 (06:40 +0000)]
remove some debugging code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22321 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agooops
Andrew Lenharth [Thu, 30 Jun 2005 19:32:57 +0000 (19:32 +0000)]
oops

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22320 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFP EXTLOAD is not support on all archs, expand to LOAD and FP_EXTEND
Andrew Lenharth [Thu, 30 Jun 2005 19:22:37 +0000 (19:22 +0000)]
FP EXTLOAD is not support on all archs, expand to LOAD and FP_EXTEND

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22319 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix PR590 and Transforms/Mem2Reg/2005-06-30-ReadBeforeWrite.ll.
Chris Lattner [Thu, 30 Jun 2005 07:29:44 +0000 (07:29 +0000)]
Fix PR590 and Transforms/Mem2Reg/2005-06-30-ReadBeforeWrite.ll.

The optimization for locally used allocas was not safe for allocas that
were read before they were written.  This change disables that optimization
in that case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22318 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agonew testcase for PR590
Chris Lattner [Thu, 30 Jun 2005 07:28:54 +0000 (07:28 +0000)]
new testcase for PR590

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22317 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake the x86 asm printer darwin-aware. This mostly entails doing the same
Nate Begeman [Thu, 30 Jun 2005 00:53:20 +0000 (00:53 +0000)]
Make the x86 asm printer darwin-aware.  This mostly entails doing the same
thing as cygwin most of the time, and printing our alignments in log2
rather than number of bytes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22316 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorestore old srcValueNode behavior and try to to work around it
Andrew Lenharth [Wed, 29 Jun 2005 18:54:02 +0000 (18:54 +0000)]
restore old srcValueNode behavior and try to to work around it

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22315 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDon't crash on a query where the block is not in any loop. Thanks to
Chris Lattner [Wed, 29 Jun 2005 17:41:25 +0000 (17:41 +0000)]
Don't crash on a query where the block is not in any loop.  Thanks to
Sameer D. Sahasrabuddhe for pointing this out!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22314 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoBug fixed.
John Criswell [Wed, 29 Jun 2005 16:22:34 +0000 (16:22 +0000)]
Bug fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22313 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDoh! Forgot to LLVMify the style.
John Criswell [Wed, 29 Jun 2005 15:57:50 +0000 (15:57 +0000)]
Doh!  Forgot to LLVMify the style.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22312 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agotracking the instructions causing loads and stores provides more information than...
Andrew Lenharth [Wed, 29 Jun 2005 15:57:19 +0000 (15:57 +0000)]
tracking the instructions causing loads and stores provides more information than just the pointer being loaded or stored

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22311 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoBasic fix for PR#591; don't convert an fprintf() to an fwrite() if there
John Criswell [Wed, 29 Jun 2005 15:03:18 +0000 (15:03 +0000)]
Basic fix for PR#591; don't convert an fprintf() to an fwrite() if there
is a mismatch in their character type pointers (i.e. fprintf() prints an
array of ubytes while fwrite() takes an array of sbytes).
We can probably do better than this (such as casting the ubyte to an
sbyte).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22310 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agothinko
Andrew Lenharth [Wed, 29 Jun 2005 13:35:05 +0000 (13:35 +0000)]
thinko

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22309 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agounify SelectExpr and SelectFP
Andrew Lenharth [Wed, 29 Jun 2005 12:49:51 +0000 (12:49 +0000)]
unify SelectExpr and SelectFP

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22308 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agofix most regressions
Andrew Lenharth [Wed, 29 Jun 2005 12:23:34 +0000 (12:23 +0000)]
fix most regressions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22307 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosupport more relocations for stores also
Andrew Lenharth [Wed, 29 Jun 2005 00:39:17 +0000 (00:39 +0000)]
support more relocations for stores also

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22306 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoGet rid of all symbolic loads. I now do gernate all relocations sequences
Andrew Lenharth [Wed, 29 Jun 2005 00:31:08 +0000 (00:31 +0000)]
Get rid of all symbolic loads.  I now do gernate all relocations sequences
rather than relying on the assembler.  Only a few more pseudo instructions
left.  Also merge load code paths.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22305 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd ElfWriter stuff to Visual Studio
Jeff Cohen [Tue, 28 Jun 2005 02:43:03 +0000 (02:43 +0000)]
Add ElfWriter stuff to Visual Studio

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22304 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosome call work
Andrew Lenharth [Mon, 27 Jun 2005 23:59:51 +0000 (23:59 +0000)]
some call work

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22303 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdapt the code for handling uint -> fp conversion for the 32 bit case to
Andrew Lenharth [Mon, 27 Jun 2005 23:28:32 +0000 (23:28 +0000)]
Adapt the code for handling uint -> fp conversion for the 32 bit case to
handling it in the 64 bit case.  The two code paths should probably be merged.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22302 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSo, it turns out I forgot that one valid way of restoring GP after a call
Andrew Lenharth [Mon, 27 Jun 2005 23:24:11 +0000 (23:24 +0000)]
So, it turns out I forgot that one valid way of restoring GP after a call
is to use RA, which assumes the called function uses RA for the register
holding the return address when it issues a ret.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22301 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoInitial set of .td file changes necessary to get scalar fp in xmm registers
Nate Begeman [Mon, 27 Jun 2005 21:20:31 +0000 (21:20 +0000)]
Initial set of .td file changes necessary to get scalar fp in xmm registers
working.  The instruction selector changes will hopefully be coming later
this week once they are debugged.  This is necessary to support the darwin
x86 FP model, and is recommended by intel as the replacement for x87.  As
a bonus, the register allocator knows how to deal with these registers
across basic blocks, unliky the FP stackifier.  This leads to significantly
better codegen in several cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22300 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoget rid of another pseudo op
Andrew Lenharth [Mon, 27 Jun 2005 21:11:40 +0000 (21:11 +0000)]
get rid of another pseudo op

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22299 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agogenerate address of constant pool entries
Andrew Lenharth [Mon, 27 Jun 2005 21:02:56 +0000 (21:02 +0000)]
generate address of constant pool entries

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22298 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMisha happification patch
Andrew Lenharth [Mon, 27 Jun 2005 17:39:17 +0000 (17:39 +0000)]
Misha happification patch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22297 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoReduce use of pseudo ops
Andrew Lenharth [Mon, 27 Jun 2005 17:15:36 +0000 (17:15 +0000)]
Reduce use of pseudo ops
Namely, output the rellocation flags explicitly when loading constants.
Added benifit: save a load when loading from the constant pool.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22296 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agomissed a load
Andrew Lenharth [Mon, 27 Jun 2005 16:40:26 +0000 (16:40 +0000)]
missed a load

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22295 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agomake constant pool labels local
Andrew Lenharth [Mon, 27 Jun 2005 16:29:54 +0000 (16:29 +0000)]
make constant pool labels local

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22294 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agowho said we had to use the return address in the return address register. Might...
Andrew Lenharth [Mon, 27 Jun 2005 15:36:48 +0000 (15:36 +0000)]
who said we had to use the return address in the return address register.  Might save a move in many cases

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22293 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd support to the X86 backend for emitting ELF files. To use this, we
Chris Lattner [Mon, 27 Jun 2005 06:30:12 +0000 (06:30 +0000)]
Add support to the X86 backend for emitting ELF files.  To use this, we
currently use: llc t.bc --filetype=obj

This will produce a t.o file which is dumpable with readelf.  Currently
the file produced is empty, but the scaffolding to do more is now in place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22292 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoiniital checkin of ELFWriter implementation
Chris Lattner [Mon, 27 Jun 2005 06:29:00 +0000 (06:29 +0000)]
iniital checkin of ELFWriter implementation

For now, the elf writer is only capable of emitting an empty elf file, with
a section table and a section table string table.  This will be enhanced
in the future :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22291 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoiniital checkin of ELFWriter header.
Chris Lattner [Mon, 27 Jun 2005 06:28:45 +0000 (06:28 +0000)]
iniital checkin of ELFWriter header.

For now, the elf writer is only capable of emitting an empty elf file, with
a section table and a section table string table.  This will be enhanced
in the future :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22290 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agodepend more on legalize putting constants on the RHS
Andrew Lenharth [Sun, 26 Jun 2005 23:01:11 +0000 (23:01 +0000)]
depend more on legalize putting constants on the RHS

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22289 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoWith setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand), Legalize
Andrew Lenharth [Sun, 26 Jun 2005 22:23:06 +0000 (22:23 +0000)]
With setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand), Legalize
should be able to handle this case.  The code is there, so let's see
if it works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22288 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd a new -filetype argument to llc.
Chris Lattner [Sat, 25 Jun 2005 03:32:05 +0000 (03:32 +0000)]
add a new -filetype argument to llc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22287 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd some new file types
Chris Lattner [Sat, 25 Jun 2005 03:31:43 +0000 (03:31 +0000)]
add some new file types

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22286 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agominor cleanups, use copy ctor instead of manually doing it.
Chris Lattner [Sat, 25 Jun 2005 03:00:34 +0000 (03:00 +0000)]
minor cleanups, use copy ctor instead of manually doing it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22285 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorefactor this interface
Chris Lattner [Sat, 25 Jun 2005 02:50:35 +0000 (02:50 +0000)]
refactor this interface

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22284 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRefactor the addPassesToEmitAssembly interface into a addPassesToEmitFile
Chris Lattner [Sat, 25 Jun 2005 02:48:37 +0000 (02:48 +0000)]
Refactor the addPassesToEmitAssembly interface into a addPassesToEmitFile
interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22282 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorefactor these interfaces a bit
Chris Lattner [Sat, 25 Jun 2005 02:47:50 +0000 (02:47 +0000)]
refactor these interfaces a bit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22281 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoimprove comments
Chris Lattner [Fri, 24 Jun 2005 18:17:33 +0000 (18:17 +0000)]
improve comments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22280 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix grammar
Chris Lattner [Fri, 24 Jun 2005 18:00:40 +0000 (18:00 +0000)]
Fix grammar

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22279 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd a note about variable length array
Chris Lattner [Fri, 24 Jun 2005 17:22:57 +0000 (17:22 +0000)]
add a note about variable length array

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22278 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd a debug type
Chris Lattner [Fri, 24 Jun 2005 16:00:46 +0000 (16:00 +0000)]
add a debug type

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22277 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove a pseudo instruction, make ret always right, and fix vararg chains
Andrew Lenharth [Thu, 23 Jun 2005 23:42:05 +0000 (23:42 +0000)]
remove a pseudo instruction, make ret always right, and fix vararg chains

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22276 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agofinally, Working varargs
Andrew Lenharth [Thu, 23 Jun 2005 16:48:51 +0000 (16:48 +0000)]
finally, Working varargs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22275 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agomore complete Lowering for vacopy and vaarg
Andrew Lenharth [Wed, 22 Jun 2005 23:04:28 +0000 (23:04 +0000)]
more complete Lowering for vacopy and vaarg

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22274 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoIf we support structs as va_list, we must pass pointers to them to va_copy
Andrew Lenharth [Wed, 22 Jun 2005 21:04:42 +0000 (21:04 +0000)]
If we support structs as va_list, we must pass pointers to them to va_copy
See last commit for LangRef, this implements it on all targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22273 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSelectionDAG is very unhappy when the argument to an intrinsic is a struct
Andrew Lenharth [Wed, 22 Jun 2005 20:38:11 +0000 (20:38 +0000)]
SelectionDAG is very unhappy when the argument to an intrinsic is a struct

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22272 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake it easier to find alpha stuff in doxygen, and fixup labeling
Andrew Lenharth [Wed, 22 Jun 2005 17:19:45 +0000 (17:19 +0000)]
Make it easier to find alpha stuff in doxygen, and fixup labeling
of memory instructions in the assembly, to allow later linking
of traces with LLVM Value*s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22271 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFixed indentation.
John Criswell [Mon, 20 Jun 2005 19:59:22 +0000 (19:59 +0000)]
Fixed indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22270 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agobecause some functions just use va_start and pass things to vfprintf
Andrew Lenharth [Mon, 20 Jun 2005 15:41:37 +0000 (15:41 +0000)]
because some functions just use va_start and pass things to vfprintf

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22269 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agothe correct fix was to fix AliasAnalysis.getModRefInfo
Andrew Lenharth [Mon, 20 Jun 2005 15:25:22 +0000 (15:25 +0000)]
the correct fix was to fix AliasAnalysis.getModRefInfo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22268 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agomake AliasAnalysis know that VAArg writes memory. This is extremely conservative...
Andrew Lenharth [Mon, 20 Jun 2005 15:24:23 +0000 (15:24 +0000)]
make AliasAnalysis know that VAArg writes memory.  This is extremely conservative and should be fixed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22267 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoprevent GCSE from forwarding stores to loads around vaarg. This is uggly, and I...
Andrew Lenharth [Mon, 20 Jun 2005 15:02:05 +0000 (15:02 +0000)]
prevent GCSE from forwarding stores to loads around vaarg.  This is uggly, and I am trying to fix the AliasInfo, as it should catch the problem instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22266 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoprevent va_arg from being hoisted from a loop
Andrew Lenharth [Mon, 20 Jun 2005 13:36:33 +0000 (13:36 +0000)]
prevent va_arg from being hoisted from a loop

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22265 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agofix DCE + va_arg problem
Andrew Lenharth [Sun, 19 Jun 2005 14:46:20 +0000 (14:46 +0000)]
fix DCE + va_arg problem

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22264 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoprevent DCE of vaarg intrinsics. This should take care of most regressions
Andrew Lenharth [Sun, 19 Jun 2005 14:41:20 +0000 (14:41 +0000)]
prevent DCE of vaarg intrinsics.  This should take care of most regressions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22263 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agova_end fix
Andrew Lenharth [Sun, 19 Jun 2005 14:04:55 +0000 (14:04 +0000)]
va_end fix

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22262 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoso this doesn't crash when run. It is hard to tell if things are right enough to...
Andrew Lenharth [Sun, 19 Jun 2005 05:45:00 +0000 (05:45 +0000)]
so this doesn't crash when run.  It is hard to tell if things are right enough to work correctly with all the TmpInstructions running around

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22261 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd a check for the mixing of vaarg and vanext with va_arg
Andrew Lenharth [Sun, 19 Jun 2005 03:53:56 +0000 (03:53 +0000)]
add a check for the mixing of vaarg and vanext with va_arg

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22260 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoIgnore the configure.out file generated by "make reconfigure"
Reid Spencer [Sat, 18 Jun 2005 23:01:25 +0000 (23:01 +0000)]
Ignore the configure.out file generated by "make reconfigure"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22259 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoIgnore some generated files.
Reid Spencer [Sat, 18 Jun 2005 23:00:34 +0000 (23:00 +0000)]
Ignore some generated files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22258 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoIgnore generated files.
Reid Spencer [Sat, 18 Jun 2005 22:59:31 +0000 (22:59 +0000)]
Ignore generated files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22257 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix this test case to actually test the new va_arg instruction not the
Reid Spencer [Sat, 18 Jun 2005 20:27:32 +0000 (20:27 +0000)]
Fix this test case to actually test the new va_arg instruction not the
old vaarg instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22256 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoOK, at least get rid of old stuff, and mark what needs to be fixed for V9
Andrew Lenharth [Sat, 18 Jun 2005 18:46:40 +0000 (18:46 +0000)]
OK, at least get rid of old stuff, and mark what needs to be fixed for V9

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22255 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agocore changes for varargs
Andrew Lenharth [Sat, 18 Jun 2005 18:34:52 +0000 (18:34 +0000)]
core changes for varargs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22254 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoheader file changes for varargs
Andrew Lenharth [Sat, 18 Jun 2005 18:31:30 +0000 (18:31 +0000)]
header file changes for varargs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22253 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agonew vararg test
Andrew Lenharth [Sat, 18 Jun 2005 18:30:37 +0000 (18:30 +0000)]
new vararg test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22252 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoOK, after checking the backwards compatibility code on X86 and the new code
Andrew Lenharth [Sat, 18 Jun 2005 18:28:17 +0000 (18:28 +0000)]
OK, after checking the backwards compatibility code on X86 and the new code
path on alpha, now has come the time for new vararg support.  So, with out
further ado, I revert behavior back a couple of years!

Well, ok, I lied.  A few more notes.

First, the Simple ISels cannot be expected to work any longer, but they
should still compile

Second, there are likely some bugs to track down once the nightly testers
start with this.

Third, the initial patch doesn't include sparcv9, but I'll do that today.

Forth, subsequent patches won't bother being long winded.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22251 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix a problem with the strcmp optimization checking the wrong string and
Reid Spencer [Sat, 18 Jun 2005 17:46:28 +0000 (17:46 +0000)]
Fix a problem with the strcmp optimization checking the wrong string and
not casting to the correct type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22250 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoClean up some uninitialized variables and missing return statements that
Reid Spencer [Sat, 18 Jun 2005 17:37:34 +0000 (17:37 +0000)]
Clean up some uninitialized variables and missing return statements that
GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22249 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake sure a variable is initialized before use to clean up a warning from
Reid Spencer [Sat, 18 Jun 2005 16:53:27 +0000 (16:53 +0000)]
Make sure a variable is initialized before use to clean up a warning from
GCC 4.0.0 in release build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22248 91177308-0d34-0410-b5e6-96231b3b80d8