Rafael Espindola [Fri, 28 Sep 2007 12:53:01 +0000 (12:53 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42433
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Sep 2007 01:35:02 +0000 (01:35 +0000)]
Stop inventing new words. :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42429
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 28 Sep 2007 01:25:07 +0000 (01:25 +0000)]
Remove unneeded #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42428
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 28 Sep 2007 01:23:47 +0000 (01:23 +0000)]
Have PostDomTree use the newly templated DFSPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42427
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 28 Sep 2007 01:19:48 +0000 (01:19 +0000)]
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
Dale Johannesen [Fri, 28 Sep 2007 01:08:20 +0000 (01:08 +0000)]
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
Dale Johannesen [Fri, 28 Sep 2007 00:21:38 +0000 (00:21 +0000)]
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
Owen Anderson [Thu, 27 Sep 2007 23:23:00 +0000 (23:23 +0000)]
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
Dan Gohman [Thu, 27 Sep 2007 23:12:31 +0000 (23:12 +0000)]
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
Gordon Henriksen [Thu, 27 Sep 2007 22:18:46 +0000 (22:18 +0000)]
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
Evan Cheng [Thu, 27 Sep 2007 21:50:05 +0000 (21:50 +0000)]
Use GR64 in 64-bit mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42417
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Thu, 27 Sep 2007 19:34:27 +0000 (19:34 +0000)]
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
Gordon Henriksen [Thu, 27 Sep 2007 19:31:36 +0000 (19:31 +0000)]
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
Evan Cheng [Thu, 27 Sep 2007 19:01:55 +0000 (19:01 +0000)]
Doh. Calls clobber EFLAGS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42413
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 27 Sep 2007 18:46:06 +0000 (18:46 +0000)]
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
Tanya Lattner [Thu, 27 Sep 2007 18:14:33 +0000 (18:14 +0000)]
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
Devang Patel [Thu, 27 Sep 2007 18:02:47 +0000 (18:02 +0000)]
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
Devang Patel [Thu, 27 Sep 2007 17:32:04 +0000 (17:32 +0000)]
Mention Loop Index Split
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42405
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Sep 2007 15:47:16 +0000 (15:47 +0000)]
new testcase for PR1708
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42398
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Thu, 27 Sep 2007 15:42:23 +0000 (15:42 +0000)]
Ignore redundant constraints
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42397
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 27 Sep 2007 14:12:54 +0000 (14:12 +0000)]
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
Bill Wendling [Thu, 27 Sep 2007 08:47:31 +0000 (08:47 +0000)]
No, really, it *is* SSSE3. ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42393
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 27 Sep 2007 08:24:36 +0000 (08:24 +0000)]
SSSE3 -> SSE3. Reported by Alex Kellett.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42392
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 27 Sep 2007 08:24:02 +0000 (08:24 +0000)]
Grammer fix reported by Alex Kellett.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42391
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 27 Sep 2007 07:35:39 +0000 (07:35 +0000)]
Silence a compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42389
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 27 Sep 2007 07:29:27 +0000 (07:29 +0000)]
Boogs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42388
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 27 Sep 2007 07:09:03 +0000 (07:09 +0000)]
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
Gordon Henriksen [Thu, 27 Sep 2007 02:47:27 +0000 (02:47 +0000)]
Remove debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42385
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 27 Sep 2007 00:25:29 +0000 (00:25 +0000)]
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
Dale Johannesen [Wed, 26 Sep 2007 23:20:33 +0000 (23:20 +0000)]
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
Gordon Henriksen [Wed, 26 Sep 2007 22:44:45 +0000 (22:44 +0000)]
Updating LLVM.xcodeproj.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42382
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 26 Sep 2007 21:38:03 +0000 (21:38 +0000)]
Oops. Forgot this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42377
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 26 Sep 2007 21:36:17 +0000 (21:36 +0000)]
- 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
Neil Booth [Wed, 26 Sep 2007 21:35:05 +0000 (21:35 +0000)]
Whitespace cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42374
91177308-0d34-0410-b5e6-
96231b3b80d8
Neil Booth [Wed, 26 Sep 2007 21:33:42 +0000 (21:33 +0000)]
Whitespace and compiler warning cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42373
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 26 Sep 2007 21:31:07 +0000 (21:31 +0000)]
- 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
Evan Cheng [Wed, 26 Sep 2007 21:28:00 +0000 (21:28 +0000)]
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
Dale Johannesen [Wed, 26 Sep 2007 21:12:10 +0000 (21:12 +0000)]
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
Dale Johannesen [Wed, 26 Sep 2007 21:10:55 +0000 (21:10 +0000)]
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
Gordon Henriksen [Wed, 26 Sep 2007 20:56:12 +0000 (20:56 +0000)]
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
Dale Johannesen [Wed, 26 Sep 2007 17:26:49 +0000 (17:26 +0000)]
Fix f80 UNDEF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42359
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 26 Sep 2007 16:24:52 +0000 (16:24 +0000)]
X86 -> X86-32 in appropriate places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42357
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 26 Sep 2007 15:59:54 +0000 (15:59 +0000)]
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
Chris Lattner [Wed, 26 Sep 2007 15:50:21 +0000 (15:50 +0000)]
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
Chris Lattner [Wed, 26 Sep 2007 15:48:33 +0000 (15:48 +0000)]
be less redundantly redundant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42354
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 26 Sep 2007 07:28:20 +0000 (07:28 +0000)]
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
Chris Lattner [Wed, 26 Sep 2007 06:38:59 +0000 (06:38 +0000)]
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
Evan Cheng [Wed, 26 Sep 2007 06:38:29 +0000 (06:38 +0000)]
Typos: POPQ -> POPFQ, POPD -> POPFD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42348
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 26 Sep 2007 06:29:31 +0000 (06:29 +0000)]
move PR1160 here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42347
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 26 Sep 2007 06:25:56 +0000 (06:25 +0000)]
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
Chris Lattner [Wed, 26 Sep 2007 06:15:48 +0000 (06:15 +0000)]
move PR1264 here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42345
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 26 Sep 2007 06:10:47 +0000 (06:10 +0000)]
noone uses etags. Connected to PR1601
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42344
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 26 Sep 2007 06:04:15 +0000 (06:04 +0000)]
we support attribute(noinline) now :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42343
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 26 Sep 2007 06:01:35 +0000 (06:01 +0000)]
update bugs list
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42342
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 26 Sep 2007 05:44:21 +0000 (05:44 +0000)]
now with more prose.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42341
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 26 Sep 2007 04:04:29 +0000 (04:04 +0000)]
Test that local variables are aligned as the user requested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42338
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 26 Sep 2007 01:29:06 +0000 (01:29 +0000)]
Add pushf{d|q}, popf{d|q} to push and pop EFLAGS register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42335
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 26 Sep 2007 00:45:55 +0000 (00:45 +0000)]
translateX86CC updates the last two operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42333
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 26 Sep 2007 00:13:34 +0000 (00:13 +0000)]
Correctly restore stack pointer after realignment in main() on Cygwin/Mingw32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42332
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Wed, 26 Sep 2007 00:11:59 +0000 (00:11 +0000)]
Fix small bug in operator== for iterators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42331
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 25 Sep 2007 23:32:20 +0000 (23:32 +0000)]
Remove no-longer-used variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42329
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 25 Sep 2007 23:07:07 +0000 (23:07 +0000)]
Make APFloat->int conversions deterministic even in
cases with undefined behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42328
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 25 Sep 2007 22:37:50 +0000 (22:37 +0000)]
explain why not vector<bool>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42324
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 25 Sep 2007 22:10:43 +0000 (22:10 +0000)]
Missing load / store folding entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42323
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 25 Sep 2007 21:52:30 +0000 (21:52 +0000)]
Partly revert invalid r41774
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42322
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 25 Sep 2007 20:45:10 +0000 (20:45 +0000)]
Grammar fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42318
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 Sep 2007 20:27:06 +0000 (20:27 +0000)]
More explicit keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42316
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 25 Sep 2007 20:08:48 +0000 (20:08 +0000)]
Add a newline to the end of this file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42314
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 Sep 2007 19:37:26 +0000 (19:37 +0000)]
Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42313
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 25 Sep 2007 19:08:02 +0000 (19:08 +0000)]
New style x87 cmp instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42312
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 25 Sep 2007 18:24:48 +0000 (18:24 +0000)]
Handle multiple induction variables.
This fixes PR714.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42309
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 Sep 2007 18:23:27 +0000 (18:23 +0000)]
When both x/y and x%y are needed (x and y both scalar integer), compute
both results with a single div or idiv instruction. This uses new X86ISD
nodes for DIV and IDIV which are introduced during the legalize phase
so that the SelectionDAG's CSE can automatically eliminate redundant
computations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42308
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 25 Sep 2007 17:55:50 +0000 (17:55 +0000)]
Do not reserve DOM check for GetElementPtrInst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42306
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 25 Sep 2007 17:50:55 +0000 (17:50 +0000)]
Some tests for APFloat conversions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42303
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 25 Sep 2007 17:47:38 +0000 (17:47 +0000)]
Forgot to check in the changes. Fix test case so it doesn't break with any scheduling changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42302
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 25 Sep 2007 17:43:08 +0000 (17:43 +0000)]
doh..
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42300
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 25 Sep 2007 17:31:19 +0000 (17:31 +0000)]
Add transformation to update loop interation space. Now,
for (i=A; i<N; i++) {
if (i < X && i > Y)
do_something();
}
is transformed into
U=min(N,X); L=max(A,Y);
for (i=L;i<U;i++)
do_somethihg();
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42299
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 25 Sep 2007 17:25:00 +0000 (17:25 +0000)]
Fix long double<->shorter FP type conversions
of zero, infinity, and NaNs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42298
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 Sep 2007 15:10:49 +0000 (15:10 +0000)]
Move the setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand) and
the check to see if the assembler supports .loc from X86TargetLowering
into the superclass TargetLowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42297
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 25 Sep 2007 13:53:22 +0000 (13:53 +0000)]
Fix spelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42296
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 25 Sep 2007 07:10:01 +0000 (07:10 +0000)]
Add missing end-of-file newlines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42294
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 25 Sep 2007 02:10:58 +0000 (02:10 +0000)]
Fill in the sections about my contributions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42286
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 25 Sep 2007 01:57:46 +0000 (01:57 +0000)]
Added support for new condition code modeling scheme (i.e. physical register dependency). These are a bunch of instructions that are duplicated so the x86 backend can support both the old and new schemes at the same time. They will be deleted after
all the kinks are worked out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42285
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 25 Sep 2007 01:54:36 +0000 (01:54 +0000)]
Added major new capabilities to scheduler (only BURR for now) to support physical register dependency. The BURR scheduler can now backtrace and duplicate instructions in order to avoid "expensive / impossible to copy" values (e.g. status flag EFLAGS for x86) from being clobbered.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42284
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 25 Sep 2007 01:50:04 +0000 (01:50 +0000)]
New temporary option -new-cc-modeling-scheme to test the new cc modeling scheme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42283
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 25 Sep 2007 01:48:59 +0000 (01:48 +0000)]
Rename keyword "modify" -> "implicit".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42282
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 24 Sep 2007 22:52:39 +0000 (22:52 +0000)]
When mixing SSE and x87 codegen, it's possible to
have situations where an SSE instruction turns into
multiple blocks, with the live range of an x87
register crossing them. To do this correctly make
sure we examine all blocks when inserting
FP_REG_KILL. PR 1697. (This was exposed by my
fix for PR 1681, but the same thing could happen
mixing x87 long double with SSE.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42281
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 24 Sep 2007 22:43:48 +0000 (22:43 +0000)]
Don't execute dump unless NDEBUG isn't defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42280
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Mon, 24 Sep 2007 22:20:45 +0000 (22:20 +0000)]
Comment fixups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42279
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Sep 2007 21:54:14 +0000 (21:54 +0000)]
Add support on x86 for having Legalize lower ISD::LOCATION to ISD::DEBUG_LOC
instead of ISD::LABEL with a manual .debug_line entry when the assembler
supports .file and .loc directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42278
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Sep 2007 21:43:52 +0000 (21:43 +0000)]
Don't emit .debug_line header data if there aren't any lines to put in it,
such as will happen when .loc directives are used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42277
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Sep 2007 21:36:21 +0000 (21:36 +0000)]
Move the Asm->EOL() call for EmitDebugARanges outside the #ifdef for
consistency with the other currently empty sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42276
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Sep 2007 21:32:18 +0000 (21:32 +0000)]
Add support for emitting .file directives to set up file numbers for
use with .loc directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42275
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Sep 2007 21:09:53 +0000 (21:09 +0000)]
Merge hasDotLoc and hasDotFile into hasDotLocAndDotFile since .loc and .file
aren't really usable without each other.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42274
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 24 Sep 2007 21:06:09 +0000 (21:06 +0000)]
float->int conversion rounds toward 0. Duh.
Fixes PR1698.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42273
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Sep 2007 20:58:13 +0000 (20:58 +0000)]
Add a routine for emitting .file directives, for setting up
file numbers to use with .loc directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42272
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 24 Sep 2007 20:15:11 +0000 (20:15 +0000)]
Added "LoadEffective" pattern to handle stack locations.
Fixed some comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42271
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Sep 2007 20:02:42 +0000 (20:02 +0000)]
Do not promote null values because it may be unsafe to do so.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42270
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Mon, 24 Sep 2007 19:45:49 +0000 (19:45 +0000)]
Implement offline variable substitution in order to reduce memory
and time usage.
Fixup operator == to make this work, and add a resize method to DenseMap
so we can resize our hashtable once we know how big it should be.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42269
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Sep 2007 19:25:06 +0000 (19:25 +0000)]
Fix the syntax for the .loc directive in preparation for using it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42268
91177308-0d34-0410-b5e6-
96231b3b80d8