Commit Graph

19082 Commits

Author SHA1 Message Date
Andrew Lenharth 53bb83bc43 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 10594206f4 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 386b151ce6 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 a1debbc634 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 dac0b3cb8a depend more on legalize putting constants on the RHS
llvm-svn: 22289
2005-06-26 23:01:11 +00:00
Andrew Lenharth 331380b2e2 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 06fcc4cb75 add a new -filetype argument to llc.
llvm-svn: 22287
2005-06-25 03:32:05 +00:00
Chris Lattner 4c661789c1 add some new file types
llvm-svn: 22286
2005-06-25 03:31:43 +00:00
Chris Lattner 09b0eb387a minor cleanups, use copy ctor instead of manually doing it.
llvm-svn: 22285
2005-06-25 03:00:34 +00:00
Chris Lattner 6a7b48e747 refactor this interface
llvm-svn: 22284
2005-06-25 02:50:35 +00:00
Chris Lattner f11f48ba61 Refactor the addPassesToEmitAssembly interface into a addPassesToEmitFile
interface.

llvm-svn: 22282
2005-06-25 02:48:37 +00:00
Chris Lattner f96366550c refactor these interfaces a bit
llvm-svn: 22281
2005-06-25 02:47:50 +00:00
Chris Lattner aad30b0dc9 improve comments
llvm-svn: 22280
2005-06-24 18:17:33 +00:00
Chris Lattner 805ecf0c79 Fix grammar
llvm-svn: 22279
2005-06-24 18:00:40 +00:00
Chris Lattner c0ad71edd4 add a note about variable length array
llvm-svn: 22278
2005-06-24 17:22:57 +00:00
Chris Lattner 9610c6f287 add a debug type
llvm-svn: 22277
2005-06-24 16:00:46 +00:00
Andrew Lenharth af1e825112 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 01cebcc131 finally, Working varargs
llvm-svn: 22275
2005-06-23 16:48:51 +00:00
Andrew Lenharth a4a12983cc more complete Lowering for vacopy and vaarg
llvm-svn: 22274
2005-06-22 23:04:28 +00:00
Andrew Lenharth 253145299b 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 5305ea5c86 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 cf9008afea 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 9cb5a82cdc Fixed indentation.
llvm-svn: 22270
2005-06-20 19:59:22 +00:00
Andrew Lenharth d6bee05fc4 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 5488847304 the correct fix was to fix AliasAnalysis.getModRefInfo
llvm-svn: 22268
2005-06-20 15:25:22 +00:00
Andrew Lenharth f42d7b54c0 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 805d84a077 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 cf52eb2b99 prevent va_arg from being hoisted from a loop
llvm-svn: 22265
2005-06-20 13:36:33 +00:00
Andrew Lenharth 2929266127 fix DCE + va_arg problem
llvm-svn: 22264
2005-06-19 14:46:20 +00:00
Andrew Lenharth d4b103107e prevent DCE of vaarg intrinsics. This should take care of most regressions
llvm-svn: 22263
2005-06-19 14:41:20 +00:00
Andrew Lenharth 717f1610f0 va_end fix
llvm-svn: 22262
2005-06-19 14:04:55 +00:00
Andrew Lenharth 237e6afde7 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
llvm-svn: 22261
2005-06-19 05:45:00 +00:00
Andrew Lenharth aa1d999682 add a check for the mixing of vaarg and vanext with va_arg
llvm-svn: 22260
2005-06-19 03:53:56 +00:00
Reid Spencer da180831e4 Ignore the configure.out file generated by "make reconfigure"
llvm-svn: 22259
2005-06-18 23:01:25 +00:00
Reid Spencer 5503ee7d88 Ignore some generated files.
llvm-svn: 22258
2005-06-18 23:00:34 +00:00
Reid Spencer ce3f35a84f Ignore generated files.
llvm-svn: 22257
2005-06-18 22:59:31 +00:00
Reid Spencer ef0d7c6af6 Fix this test case to actually test the new va_arg instruction not the
old vaarg instruction.

llvm-svn: 22256
2005-06-18 20:27:32 +00:00
Andrew Lenharth a4c10cd6f2 OK, at least get rid of old stuff, and mark what needs to be fixed for V9
llvm-svn: 22255
2005-06-18 18:46:40 +00:00
Andrew Lenharth 9144ec4764 core changes for varargs
llvm-svn: 22254
2005-06-18 18:34:52 +00:00
Andrew Lenharth 4549a86233 header file changes for varargs
llvm-svn: 22253
2005-06-18 18:31:30 +00:00
Andrew Lenharth 435054cd1b new vararg test
llvm-svn: 22252
2005-06-18 18:30:37 +00:00
Andrew Lenharth 5fb787c619 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.

llvm-svn: 22251
2005-06-18 18:28:17 +00:00
Reid Spencer a7828baa3c Fix a problem with the strcmp optimization checking the wrong string and
not casting to the correct type.

llvm-svn: 22250
2005-06-18 17:46:28 +00:00
Reid Spencer 4fdd96c4e0 Clean up some uninitialized variables and missing return statements that
GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build.

llvm-svn: 22249
2005-06-18 17:37:34 +00:00
Reid Spencer 1fb9d01919 Make sure a variable is initialized before use to clean up a warning from
GCC 4.0.0 in release build.

llvm-svn: 22248
2005-06-18 16:53:27 +00:00
Andrew Lenharth 26fc33fd2a A start at a Sparc V8 Pattern ISel. Anyone want to implement the calling
convention? ;)

llvm-svn: 22247
2005-06-17 16:52:12 +00:00
Chris Lattner 3d57b4c75f silence incredibly braindead GCC 4 warning
llvm-svn: 22246
2005-06-17 13:44:07 +00:00
Chris Lattner 459a9cbe1e silence a bogus warning
llvm-svn: 22245
2005-06-17 13:23:32 +00:00
Chris Lattner 8f7da41021 silence a huge number of bogus warnings with GCC 4 on Reid's tester.
llvm-svn: 22244
2005-06-17 13:20:15 +00:00
Tanya Lattner 8a78658cc0 Removed IIIi specific changes. This should be fixed to add floating point deps for the IIi.
llvm-svn: 22243
2005-06-17 04:21:09 +00:00