Commit Graph

34535 Commits

Author SHA1 Message Date
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
Chris Lattner
11d120f9c0 we support attribute(noinline) now :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42343 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 06:04:15 +00:00
Chris Lattner
725a0d86ea update bugs list
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42342 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 06:01:35 +00:00
Chris Lattner
d4298715f6 now with more prose.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42341 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 05:44:21 +00:00
Duncan Sands
ca9976d6fe 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
2007-09-26 04:04:29 +00:00
Evan Cheng
2f245ba572 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
2007-09-26 01:29:06 +00:00
Evan Cheng
1a35edba13 translateX86CC updates the last two operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42333 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 00:45:55 +00:00
Anton Korobeynikov
29be8486e3 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
2007-09-26 00:13:34 +00:00
Daniel Berlin
9f711252f5 Fix small bug in operator== for iterators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42331 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 00:11:59 +00:00
Dale Johannesen
350add8f51 Remove no-longer-used variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42329 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 23:32:20 +00:00
Dale Johannesen
0edc47ad7b 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
2007-09-25 23:07:07 +00:00
Chris Lattner
7086ce7268 explain why not vector<bool>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42324 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 22:37:50 +00:00
Evan Cheng
fdd0837448 Missing load / store folding entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42323 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 22:10:43 +00:00
Anton Korobeynikov
2fe1259d0a Partly revert invalid r41774
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42322 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 21:52:30 +00:00
Bill Wendling
ee143ade09 Grammar fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42318 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 20:45:10 +00:00
Dan Gohman
677ccc6e8b More explicit keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42316 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 20:27:06 +00:00
Duncan Sands
2a3876d885 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
2007-09-25 20:08:48 +00:00
Dan Gohman
b94fc1bcb2 Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42313 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 19:37:26 +00:00
Evan Cheng
4e4d2d7d9a New style x87 cmp instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42312 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 19:08:02 +00:00
Devang Patel
a6dff2faeb Handle multiple induction variables.
This fixes PR714.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 18:24:48 +00:00
Dan Gohman
a37c9f7506 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
2007-09-25 18:23:27 +00:00
Devang Patel
798b4afd48 Do not reserve DOM check for GetElementPtrInst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42306 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 17:55:50 +00:00
Dale Johannesen
2246bb6011 Some tests for APFloat conversions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42303 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 17:50:55 +00:00
Evan Cheng
6ee23ad74b 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
2007-09-25 17:47:38 +00:00
Devang Patel
1c01350f0f doh..
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42300 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 17:43:08 +00:00
Devang Patel
453a844128 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
2007-09-25 17:31:19 +00:00
Dale Johannesen
902ff94aff 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
2007-09-25 17:25:00 +00:00
Dan Gohman
c3b0b5ca1d 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
2007-09-25 15:10:49 +00:00
Duncan Sands
d98164e6ee Fix spelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42296 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 13:53:22 +00:00
Duncan Sands
db1b3e08bc Add missing end-of-file newlines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42294 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 07:10:01 +00:00
Owen Anderson
50fd00024f Fill in the sections about my contributions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42286 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-25 02:10:58 +00:00
Evan Cheng
0488db9b99 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
2007-09-25 01:57:46 +00:00
Evan Cheng
a6fb1b6743 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
2007-09-25 01:54:36 +00:00