1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-29 23:12:55 +01:00
Commit Graph

34773 Commits

Author SHA1 Message Date
Dan Gohman
cf40e00d32 Make the checks for DW_FORM_data4 consistent with the others, and
add more such code for DIEDwarfLabel::SizeOf and DIEObjectLabel::SizeOf.

llvm-svn: 42435
2007-09-28 16:50:28 +00:00
Dan Gohman
8e1513ad66 Use 32-bit data directives for DW_FORM_data4 format data, even on
targets with 64-bit addresses.

llvm-svn: 42434
2007-09-28 15:43:33 +00:00
Rafael Espindola
01b306e575 Refactor the memcpy lowering for the x86 target.
The only generated code difference is that now we call memcpy when
the size of the array is unknown. This matches GCC behavior and is
better since the run time value can be arbitrarily large.

llvm-svn: 42433
2007-09-28 12:53:01 +00:00
Evan Cheng
c2acb6f2e5 Stop inventing new words. :-)
llvm-svn: 42429
2007-09-28 01:35:02 +00:00
Owen Anderson
bc2f1ab49d Remove unneeded #include.
llvm-svn: 42428
2007-09-28 01:25:07 +00:00
Owen Anderson
a533c458f5 Have PostDomTree use the newly templated DFSPass.
llvm-svn: 42427
2007-09-28 01:23:47 +00:00
Evan Cheng
d3ff9d3ff7 Pessimisively assume ADJCALLSTACKDOWN / ADJCALLSTACKUP (which becomes sub / add) clobbers EFLAGS.
llvm-svn: 42426
2007-09-28 01:19:48 +00:00
Dale Johannesen
e61886cee4 Add sqrt and powi intrinsics for long double.
llvm-svn: 42423
2007-09-28 01:08:20 +00:00
Dale Johannesen
412575891e Don't do SRA for unions with long double fields.
Fixes a SWB crash.

llvm-svn: 42422
2007-09-28 00:21:38 +00:00
Owen Anderson
e529f66979 Convert DFSPass into a templated friend function, in preparation for making it common to DomTree and PostDomTree.
llvm-svn: 42420
2007-09-27 23:23:00 +00:00
Dan Gohman
50747737a5 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.

llvm-svn: 42419
2007-09-27 23:12:31 +00:00
Gordon Henriksen
b20ff7f981 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.

llvm-svn: 42418
2007-09-27 22:18:46 +00:00
Evan Cheng
d8ab90ae1f Use GR64 in 64-bit mode.
llvm-svn: 42417
2007-09-27 21:50:05 +00:00
Gordon Henriksen
2571db23f1 My previous Registry.h header, as well as Collectors.h, which is the
registry for dynamically-loaded garbage collection compiler plugins.

llvm-svn: 42415
2007-09-27 19:34:27 +00:00
Gordon Henriksen
351222b471 GarbageCollection.html is expanded to encompass the coming
capabilities. This is a major rewrite and is easier to read en toto
rather than patchwise.

llvm-svn: 42414
2007-09-27 19:31:36 +00:00
Evan Cheng
826f0f94df Doh. Calls clobber EFLAGS.
llvm-svn: 42413
2007-09-27 19:01:55 +00:00
Evan Cheng
02e1749295 Avoid inserting a live register more than once.
llvm-svn: 42410
2007-09-27 18:46:06 +00:00
Tanya Lattner
29f209a295 Couple of fixes to mention bunzip2 and make instructions more clear.
llvm-svn: 42407
2007-09-27 18:14:33 +00:00
Devang Patel
1bf4ded048 While searching for appropriate place for temporaries, do not over-incerement iterator.
llvm-svn: 42406
2007-09-27 18:02:47 +00:00
Devang Patel
d5849cedfe Mention Loop Index Split
llvm-svn: 42405
2007-09-27 17:32:04 +00:00
Chris Lattner
340cc2bcc1 new testcase for PR1708
llvm-svn: 42398
2007-09-27 15:47:16 +00:00
Daniel Berlin
b3d303b103 Ignore redundant constraints
llvm-svn: 42397
2007-09-27 15:42:23 +00:00
Nick Lewycky
a44e458ddc Build the correct range for loops with unusual bounds. Fix from Jay Foad.
llvm-svn: 42394
2007-09-27 14:12:54 +00:00
Bill Wendling
3275ea3f1d No, really, it *is* SSSE3. ;-)
llvm-svn: 42393
2007-09-27 08:47:31 +00:00
Duncan Sands
2d92d29632 SSSE3 -> SSE3. Reported by Alex Kellett.
llvm-svn: 42392
2007-09-27 08:24:36 +00:00
Duncan Sands
75b9aa065f Grammer fix reported by Alex Kellett.
llvm-svn: 42391
2007-09-27 08:24:02 +00:00
Evan Cheng
7a9237420b Silence a compiler warning.
llvm-svn: 42389
2007-09-27 07:35:39 +00:00
Evan Cheng
2d4b603a75 Boogs.
llvm-svn: 42388
2007-09-27 07:29:27 +00:00
Evan Cheng
f2cd163dc5 Be smarter about which node to force schedule. Reduce # of duplications + copies; Added statistics.
llvm-svn: 42387
2007-09-27 07:09:03 +00:00
Gordon Henriksen
368316dc1c Remove debugging.
llvm-svn: 42385
2007-09-27 02:47:27 +00:00
Evan Cheng
788683ab56 Backtracking only when it won't create a cycle.
llvm-svn: 42384
2007-09-27 00:25:29 +00:00
Dale Johannesen
089d2e760f Make temporaries explicit to avoid premature
destruction of compiler-created ones.

llvm-svn: 42383
2007-09-26 23:20:33 +00:00
Gordon Henriksen
dee72e636e Updating LLVM.xcodeproj.
llvm-svn: 42382
2007-09-26 22:44:45 +00:00
Evan Cheng
2075b448c3 Oops. Forgot this.
llvm-svn: 42377
2007-09-26 21:38:03 +00:00
Evan Cheng
29817845b3 - Move getPhysicalRegisterRegClass() from ScheduleDAG to MRegisterInfo.
- Added ability to emit cross class register copies to the BBRU scheduler.
- More aggressive backtracking.

llvm-svn: 42375
2007-09-26 21:36:17 +00:00
Neil Booth
3680e05d98 Whitespace cleanup.
llvm-svn: 42374
2007-09-26 21:35:05 +00:00
Neil Booth
3b53530d78 Whitespace and compiler warning cleanup.
llvm-svn: 42373
2007-09-26 21:33:42 +00:00
Evan Cheng
0f9e307353 - 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.

llvm-svn: 42372
2007-09-26 21:31:07 +00:00
Evan Cheng
66eeb8440c Some assemblers do not recognize aliases pushfd, pushfq, popfd, and popfq. Just emit them as pushf and popf.
llvm-svn: 42371
2007-09-26 21:28:00 +00:00
Dale Johannesen
57b6470e8b Modernize fabs.ll, add long double. Add tests
for direct codegen of fsin/fcos.

llvm-svn: 42369
2007-09-26 21:12:10 +00:00
Dale Johannesen
69595b587f Enable codegen for long double abs, sin, cos
llvm-svn: 42368
2007-09-26 21:10:55 +00:00
Gordon Henriksen
c73d5c73a6 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.

llvm-svn: 42367
2007-09-26 20:56:12 +00:00
Dale Johannesen
20674e6c52 Fix f80 UNDEF.
llvm-svn: 42359
2007-09-26 17:26:49 +00:00
Duncan Sands
d8bc485573 X86 -> X86-32 in appropriate places.
llvm-svn: 42357
2007-09-26 16:24:52 +00:00
Duncan Sands
276bb314b9 Various cleanups. Especially, EH is turned on by default!
llvm-svn: 42356
2007-09-26 15:59:54 +00:00
Chris Lattner
a7e838ced3 ok ok we get it. CBE and vectors don't like each other yet.
llvm-svn: 42355
2007-09-26 15:50:21 +00:00
Chris Lattner
f5878ad5db be less redundantly redundant.
llvm-svn: 42354
2007-09-26 15:48:33 +00:00
Duncan Sands
b44b922bc1 Test the C front-end, not the C++ front-end.
llvm-svn: 42350
2007-09-26 07:28:20 +00:00
Chris Lattner
4855af9f8d make old crappy browsers produce less crappy output :)
llvm-svn: 42349
2007-09-26 06:38:59 +00:00
Evan Cheng
37ee6eba29 Typos: POPQ -> POPFQ, POPD -> POPFD.
llvm-svn: 42348
2007-09-26 06:38:29 +00:00