Commit Graph

34867 Commits

Author SHA1 Message Date
Owen Anderson
2824121cf1 Remove unneeded #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42428 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-28 01:25:07 +00:00
Owen Anderson
303f47b1dd Have PostDomTree use the newly templated DFSPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42427 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-28 01:23:47 +00:00
Evan Cheng
8decf6bc18 Pessimisively assume ADJCALLSTACKDOWN / ADJCALLSTACKUP (which becomes sub / add) clobbers EFLAGS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42426 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-28 01:19:48 +00:00
Dale Johannesen
317096ab37 Add sqrt and powi intrinsics for long double.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42423 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-28 01:08:20 +00:00
Dale Johannesen
ef0ab932ef Don't do SRA for unions with long double fields.
Fixes a SWB crash.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42422 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-28 00:21:38 +00:00
Owen Anderson
58ec8825d4 Convert DFSPass into a templated friend function, in preparation for making it common to DomTree and PostDomTree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42420 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 23:23:00 +00:00
Dan Gohman
82482944ed TargetAsmInfo::getAddressSize() was incorrect for x86-64 and 64-bit targets
other than PPC64. Instead of fixing it, just remove it and fix all the
places that use it to use TargetData::getPointerSize() instead, as there
aren't very many. Most of the references were in DwarfWriter.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42419 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 23:12:31 +00:00
Gordon Henriksen
fc3282221f CollectorMetadata abstractly describes stack maps for a function.
It includes:

 - location and of each safe point in machine code (identified by a
   label)
 - location of each root within the stack frame (identified by an
   offset), including the metadata tag provided to llvm.gcroot in
   the user program
 - size of the stack frame (for collectors which want to cheat on
   stack crawling :)
 - and eventually will include liveness

It is to be populated by back-ends during code-generation.

CollectorModuleMetadata aggregates this information across the
entire module.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42418 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 22:18:46 +00:00
Evan Cheng
3f2d9ec186 Use GR64 in 64-bit mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42417 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 21:50:05 +00:00
Gordon Henriksen
d9900c9442 My previous Registry.h header, as well as Collectors.h, which is the
registry for dynamically-loaded garbage collection compiler plugins.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42415 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 19:34:27 +00:00
Gordon Henriksen
326e24fff0 GarbageCollection.html is expanded to encompass the coming
capabilities. This is a major rewrite and is easier to read en toto
rather than patchwise.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42414 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 19:31:36 +00:00
Evan Cheng
1ed37fdb3b Doh. Calls clobber EFLAGS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42413 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 19:01:55 +00:00
Evan Cheng
cd1c00cc65 Avoid inserting a live register more than once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42410 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 18:46:06 +00:00
Tanya Lattner
ff37adc0ce Couple of fixes to mention bunzip2 and make instructions more clear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42407 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 18:14:33 +00:00
Devang Patel
cdc52b0dd7 While searching for appropriate place for temporaries, do not over-incerement iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42406 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 18:02:47 +00:00
Devang Patel
5d02a0cf9b Mention Loop Index Split
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42405 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 17:32:04 +00:00
Chris Lattner
b1ab71d997 new testcase for PR1708
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42398 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 15:47:16 +00:00
Daniel Berlin
c7a12ae24a Ignore redundant constraints
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42397 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 15:42:23 +00:00
Nick Lewycky
9a2f93121b Build the correct range for loops with unusual bounds. Fix from Jay Foad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42394 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 14:12:54 +00:00
Bill Wendling
0678f60bf2 No, really, it *is* SSSE3. ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42393 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 08:47:31 +00:00
Duncan Sands
97f214ce97 SSSE3 -> SSE3. Reported by Alex Kellett.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42392 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 08:24:36 +00:00
Duncan Sands
20acdce0ed Grammer fix reported by Alex Kellett.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42391 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 08:24:02 +00:00
Evan Cheng
64f638df56 Silence a compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42389 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 07:35:39 +00:00
Evan Cheng
2dc7a0e075 Boogs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42388 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 07:29:27 +00:00
Evan Cheng
a2ee2756f7 Be smarter about which node to force schedule. Reduce # of duplications + copies; Added statistics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42387 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 07:09:03 +00:00
Gordon Henriksen
0673705694 Remove debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42385 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 02:47:27 +00:00
Evan Cheng
6e4c46cea5 Backtracking only when it won't create a cycle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42384 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 00:25:29 +00:00
Dale Johannesen
693717fbe6 Make temporaries explicit to avoid premature
destruction of compiler-created ones.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42383 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 23:20:33 +00:00
Gordon Henriksen
0e99c53f64 Updating LLVM.xcodeproj.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42382 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 22:44:45 +00:00
Evan Cheng
8ed3ffee53 Oops. Forgot this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42377 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 21:38:03 +00:00
Evan Cheng
42d60274ea - Move getPhysicalRegisterRegClass() from ScheduleDAG to MRegisterInfo.
- Added ability to emit cross class register copies to the BBRU scheduler.
- More aggressive backtracking.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 21:36:17 +00:00
Neil Booth
117acf9e36 Whitespace cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42374 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 21:35:05 +00:00
Neil Booth
4f88170be0 Whitespace and compiler warning cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42373 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 21:33:42 +00:00
Evan Cheng
ff11026575 - Added MRegisterInfo::getCrossCopyRegClass() hook. For register classes where reg to reg copies are not possible, this returns another register class which registers in the specified register class can be copied to (and copy back from).
- X86 copyRegToReg() now supports copying between EFLAGS and GR32 / GR64 registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42372 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 21:31:07 +00:00
Evan Cheng
bf4f89dc00 Some assemblers do not recognize aliases pushfd, pushfq, popfd, and popfq. Just emit them as pushf and popf.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42371 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 21:28:00 +00:00
Dale Johannesen
fe5293daa2 Modernize fabs.ll, add long double. Add tests
for direct codegen of fsin/fcos.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42369 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 21:12:10 +00:00
Dale Johannesen
2f42901dff Enable codegen for long double abs, sin, cos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42368 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 21:10:55 +00:00
Gordon Henriksen
46abf91f73 Added C and Ocaml bindings for functions, basic blocks, and
instruction creation. No support yet for instruction introspection.

Also eliminated allocas from the Ocaml bindings for portability,
and avoided unnecessary casts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42367 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 20:56:12 +00:00
Dale Johannesen
f41db2136f Fix f80 UNDEF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42359 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 17:26:49 +00:00
Duncan Sands
0869f4acec X86 -> X86-32 in appropriate places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42357 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 16:24:52 +00:00
Duncan Sands
c90d68bf3d Various cleanups. Especially, EH is turned on by default!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42356 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 15:59:54 +00:00
Chris Lattner
9412489650 ok ok we get it. CBE and vectors don't like each other yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42355 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 15:50:21 +00:00
Chris Lattner
b323ca805f be less redundantly redundant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42354 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 15:48:33 +00:00
Duncan Sands
0d91645ba4 Test the C front-end, not the C++ front-end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42350 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 07:28:20 +00:00
Chris Lattner
6b588d9255 make old crappy browsers produce less crappy output :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42349 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 06:38:59 +00:00
Evan Cheng
8d5562be30 Typos: POPQ -> POPFQ, POPD -> POPFD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42348 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 06:38:29 +00:00
Chris Lattner
1efa1696e3 move PR1160 here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42347 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 06:29:31 +00:00
Evan Cheng
9efce638d3 Allow copyRegToReg to emit cross register classes copies.
Tested with "make check"!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42346 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 06:25:56 +00:00
Chris Lattner
61001b8bd4 move PR1264 here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42345 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 06:15:48 +00:00
Chris Lattner
72e463369d noone uses etags. Connected to PR1601
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42344 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 06:10:47 +00:00