19066 Commits

Author SHA1 Message Date
Andrew Lenharth
898efb338a restore old srcValueNode behavior and try to to work around it
llvm-svn: 22315
2005-06-29 18:54:02 +00:00
Chris Lattner
83170cd9ba Don't crash on a query where the block is not in any loop. Thanks to
Sameer D. Sahasrabuddhe for pointing this out!

llvm-svn: 22314
2005-06-29 17:41:25 +00:00
John Criswell
3ea45d49cd Bug fixed.
llvm-svn: 22313
2005-06-29 16:22:34 +00:00
John Criswell
a6620d4a6e Doh! Forgot to LLVMify the style.
llvm-svn: 22312
2005-06-29 15:57:50 +00:00
Andrew Lenharth
edccb834bb tracking the instructions causing loads and stores provides more information than just the pointer being loaded or stored
llvm-svn: 22311
2005-06-29 15:57:19 +00:00
John Criswell
1bafe064da 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).

llvm-svn: 22310
2005-06-29 15:03:18 +00:00
Andrew Lenharth
781dd8e05f thinko
llvm-svn: 22309
2005-06-29 13:35:05 +00:00
Andrew Lenharth
6b4dbd7cd5 unify SelectExpr and SelectFP
llvm-svn: 22308
2005-06-29 12:49:51 +00:00
Andrew Lenharth
88491475e2 fix most regressions
llvm-svn: 22307
2005-06-29 12:23:34 +00:00
Andrew Lenharth
172871ba0f support more relocations for stores also
llvm-svn: 22306
2005-06-29 00:39:17 +00:00
Andrew Lenharth
41d08a0bbe 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.

llvm-svn: 22305
2005-06-29 00:31:08 +00:00
Jeff Cohen
d8982d4282 Add ElfWriter stuff to Visual Studio
llvm-svn: 22304
2005-06-28 02:43:03 +00:00
Andrew Lenharth
d1dbc8ab27 some call work
llvm-svn: 22303
2005-06-27 23:59:51 +00:00
Andrew Lenharth
d534c5cb2a 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.

llvm-svn: 22302
2005-06-27 23:28:32 +00:00
Andrew Lenharth
cc12cd8c5a 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.

llvm-svn: 22301
2005-06-27 23:24:11 +00:00
Nate Begeman
032a94775d 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.

llvm-svn: 22300
2005-06-27 21:20:31 +00:00
Andrew Lenharth
34630b5ab0 get rid of another pseudo op
llvm-svn: 22299
2005-06-27 21:11:40 +00:00
Andrew Lenharth
b80c19b01a generate address of constant pool entries
llvm-svn: 22298
2005-06-27 21:02:56 +00:00
Andrew Lenharth
6e30e970ed Misha happification patch
llvm-svn: 22297
2005-06-27 17:39:17 +00:00
Andrew Lenharth
a3f70592a7 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.

llvm-svn: 22296
2005-06-27 17:15:36 +00:00
Andrew Lenharth
573514894c missed a load
llvm-svn: 22295
2005-06-27 16:40:26 +00:00
Andrew Lenharth
ac3ecf5338 make constant pool labels local
llvm-svn: 22294
2005-06-27 16:29:54 +00:00
Andrew Lenharth
f50cb3fad2 who said we had to use the return address in the return address register. Might save a move in many cases
llvm-svn: 22293
2005-06-27 15:36:48 +00:00
Chris Lattner
cd6b5c5011 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.

llvm-svn: 22292
2005-06-27 06:30:12 +00:00
Chris Lattner
8be1980730 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 :)

llvm-svn: 22291
2005-06-27 06:29:00 +00:00
Chris Lattner
85b1b5aa24 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 :)

llvm-svn: 22290
2005-06-27 06:28:45 +00:00
Andrew Lenharth
9dc5d846ee depend more on legalize putting constants on the RHS
llvm-svn: 22289
2005-06-26 23:01:11 +00:00
Andrew Lenharth
91bc570aac 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.

llvm-svn: 22288
2005-06-26 22:23:06 +00:00
Chris Lattner
879a78ea54 add a new -filetype argument to llc.
llvm-svn: 22287
2005-06-25 03:32:05 +00:00
Chris Lattner
82cdeff6db add some new file types
llvm-svn: 22286
2005-06-25 03:31:43 +00:00
Chris Lattner
704a543530 minor cleanups, use copy ctor instead of manually doing it.
llvm-svn: 22285
2005-06-25 03:00:34 +00:00
Chris Lattner
c8a5e80f4f refactor this interface
llvm-svn: 22284
2005-06-25 02:50:35 +00:00
Chris Lattner
06282f51cf Refactor the addPassesToEmitAssembly interface into a addPassesToEmitFile
interface.

llvm-svn: 22282
2005-06-25 02:48:37 +00:00
Chris Lattner
37688fa81f refactor these interfaces a bit
llvm-svn: 22281
2005-06-25 02:47:50 +00:00
Chris Lattner
24bcb4753a improve comments
llvm-svn: 22280
2005-06-24 18:17:33 +00:00
Chris Lattner
6f3c7b46ee Fix grammar
llvm-svn: 22279
2005-06-24 18:00:40 +00:00
Chris Lattner
8842bcc3fc add a note about variable length array
llvm-svn: 22278
2005-06-24 17:22:57 +00:00
Chris Lattner
eb08628106 add a debug type
llvm-svn: 22277
2005-06-24 16:00:46 +00:00
Andrew Lenharth
17f46306d6 remove a pseudo instruction, make ret always right, and fix vararg chains
llvm-svn: 22276
2005-06-23 23:42:05 +00:00
Andrew Lenharth
51d9d1b763 finally, Working varargs
llvm-svn: 22275
2005-06-23 16:48:51 +00:00
Andrew Lenharth
eda77c60a0 more complete Lowering for vacopy and vaarg
llvm-svn: 22274
2005-06-22 23:04:28 +00:00
Andrew Lenharth
4fd2bde906 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.

llvm-svn: 22273
2005-06-22 21:04:42 +00:00
Andrew Lenharth
0d30c53b5f SelectionDAG is very unhappy when the argument to an intrinsic is a struct
llvm-svn: 22272
2005-06-22 20:38:11 +00:00
Andrew Lenharth
e54b651806 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.

llvm-svn: 22271
2005-06-22 17:19:45 +00:00
John Criswell
00c8485c77 Fixed indentation.
llvm-svn: 22270
2005-06-20 19:59:22 +00:00
Andrew Lenharth
ce6f907ffe because some functions just use va_start and pass things to vfprintf
llvm-svn: 22269
2005-06-20 15:41:37 +00:00
Andrew Lenharth
4e1c8055ea the correct fix was to fix AliasAnalysis.getModRefInfo
llvm-svn: 22268
2005-06-20 15:25:22 +00:00
Andrew Lenharth
8ff5960b39 make AliasAnalysis know that VAArg writes memory. This is extremely conservative and should be fixed
llvm-svn: 22267
2005-06-20 15:24:23 +00:00
Andrew Lenharth
262b657737 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.
llvm-svn: 22266
2005-06-20 15:02:05 +00:00
Andrew Lenharth
08ff634c2b prevent va_arg from being hoisted from a loop
llvm-svn: 22265
2005-06-20 13:36:33 +00:00