Commit Graph

29352 Commits

Author SHA1 Message Date
Nate Begeman
bcc5f36765 Finish off bug 680, allowing targets to custom lower frame and return
address nodes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33636 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:58:52 +00:00
Nate Begeman
1f259e9d7a We'd still like to register allocate r2 on darwin before the callee-save
regs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33635 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:57:48 +00:00
Jim Laskey
73c5624375 rename flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33634 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:40:03 +00:00
Evan Cheng
24f7fb3267 Comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33633 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:23:02 +00:00
Evan Cheng
78268b9436 Remember if LR register has been spilled in this function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33632 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:22:24 +00:00
Anton Korobeynikov
1620f1ad91 Save all registers by default, as they can be used to pass parameters
for "inreg" calls


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33631 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 21:28:01 +00:00
Nate Begeman
908049b7b6 Update some of the llvm in the readme
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33630 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 21:21:22 +00:00
Nate Begeman
1257c855d7 Properly support cstrings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33629 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 21:20:42 +00:00
Jim Laskey
1b340dc8e2 Flag to control exception handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33628 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:48:32 +00:00
Devang Patel
f82aa1cf73 Measure timings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33627 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:08:03 +00:00
Devang Patel
b05ef6a8eb Move TimingInfo into PassManagers.h so that other libs can use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33626 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:06:26 +00:00
Jim Laskey
d683ef6655 Disable zero landing pads for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33625 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:01:41 +00:00
Reid Spencer
7de2e013db Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33624 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 19:08:46 +00:00
Reid Spencer
f049c6712d For PR1142:
When an unresolved definition is found, check to see if it is only unresolved
because the csretcc was upgraded to the sret param attribute. Such changes
change the function type and lead to unresolved definitions. In such cases, just
cast the function to the type expected by the CallInst. That is, cast to the
version of the function that has the sret param attribute.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33623 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 19:07:18 +00:00
Jim Laskey
072200c36d Landing pad-less eh for PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33622 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 18:51:14 +00:00
Jim Laskey
9e9225cb01 Update project
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33621 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 18:45:08 +00:00
Reid Spencer
73a27c894f Remove tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33620 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 17:55:50 +00:00
Reid Spencer
519e239b1f Implement use of new IntrinsicLowering interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33619 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 17:51:02 +00:00
Reid Spencer
6addf2ceeb Use TargetData to obtain the correct size of the "size_t" argument for
functions like memcpy, memmove and memset. Ensure only one prototype is
used for these functions and that it matches the system definition by
using the appropriate type for the size argument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33618 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 17:42:06 +00:00
Reid Spencer
36abe14863 IntrinsicLowering now requires TargetData.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33617 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 17:39:50 +00:00
Jim Laskey
2957f2deb3 Update project.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33616 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 15:09:35 +00:00
Reid Spencer
b7046c7352 Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33615 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 05:41:34 +00:00
Reid Spencer
43f76c9925 Upgrade old csret calling convention into sret parameter attribute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33614 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 05:41:09 +00:00
Reid Spencer
57eba0ab51 Update this test case to look for sret parameter attribute not csret cc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33613 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 05:40:02 +00:00
Nick Lewycky
6a08f918b6 Simplify names of lattice values. SGTUNE becomes SGT, for example.
Fix initializeConstant, now initializeInt. Fixes major performance
bottleneck.

X == Y || X->DominatedBy(Y) is redundant. Remove the X == Y part.

Fix crasher in makeEqual where getOrInsertNode would add a new constant,
producing an NE relationship between the two members we're trying to make
equal. This now allows us to mark more BBs as unreachable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33612 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 02:56:54 +00:00
Chris Lattner
ec9bfdc152 Read from the right place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33611 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 02:18:13 +00:00
Chris Lattner
c36357c406 Fix PR1139
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33610 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 00:21:34 +00:00
Anton Korobeynikov
94c49edfe2 Make doxygen happy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33609 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 00:09:00 +00:00
Reid Spencer
1e9126b3c4 For PR1138:
Force memcpy to be the 32-bit variant. Since this is only used with
CBE and lli which both target 32-bit machines, this should be okay.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33608 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 22:28:00 +00:00
Reid Spencer
e5da2c075e Adjust a comment to reflect reality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33607 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 22:26:42 +00:00
Anton Korobeynikov
6aa279dc8b Arguments are counting from 1. not from 0. Maybe we should change
numbering somehow? E.g. make return argument the last?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33606 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 18:01:49 +00:00
Anton Korobeynikov
ac2b2cf88c More cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33605 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 16:04:40 +00:00
Nick Lewycky
3fdf2c3cd4 Drop CSRET from here too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33604 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 15:51:15 +00:00
Nick Lewycky
5310897884 Fix compile error "jump to case label crosses initialization".
What compiler are people using that accepts this code?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33603 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 15:39:16 +00:00
Anton Korobeynikov
66a8c8ccb8 Grammar fix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33602 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 15:27:21 +00:00
Anton Korobeynikov
ce13b85e6c Merge error at my side. Fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33601 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 15:25:24 +00:00
Anton Korobeynikov
34d6dea849 Document 'inreg' & 'sret'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33600 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 14:30:45 +00:00
Anton Korobeynikov
9adeaa2f59 Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33599 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 13:37:39 +00:00
Anton Korobeynikov
c4c87a30d2 Drop CSRET CC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33598 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 13:36:18 +00:00
Anton Korobeynikov
b10308e440 Propagate changes from my local tree. This patch includes:
1. New parameter attribute called 'inreg'. It has meaning "place this
parameter in registers, if possible". This is some generalization of
gcc's regparm(n) attribute. It's currently used only in X86-32 backend.
2. Completely rewritten CC handling/lowering code inside X86 backend.
Merged stdcall + c CCs and fastcall + fast CC.
3. Dropped CSRET CC. We cannot add struct return variant for each
target-specific CC (e.g. stdcall + csretcc and so on).
4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in
on first attribute has meaning 'This is hidden pointer to structure
return. Handle it gently'.
5. Fixed small bug in llvm-extract + add new feature to
FunctionExtraction pass, which relinks all internal-linkaged callees
from deleted function to external linkage. This will allow further
linking everything together.

NOTEs: 1. Documentation will be updated soon.
       2. llvm-upgrade should be improved to translate csret => sret.
          Before this, there will be some unexpected test fails.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33597 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 13:31:35 +00:00
Reid Spencer
f0876c7cb7 This file has been dead for a long time. Remove it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33596 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 08:04:14 +00:00
Reid Spencer
3c0f6cf49b Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33595 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 00:52:05 +00:00
Reid Spencer
1e3c64e183 For PR1137:
When a value is found to have the same name as another, try harder to
disambiguate when its a type plane collapse issue and when it isn't. We
traverse the type to see if it contains an integer. If it does not then
we issue the error because it can't be resulting from integer type planes
collapsing. Otherwise we just rename it, even if that's a bit of overkill.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33594 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 00:51:40 +00:00
Reid Spencer
104fff8e5a Test case for PR1137. This makes sure that we don't get erroneous
"redefinition" errors that cause the upgrade to fail.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33593 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 00:45:28 +00:00
Chris Lattner
ea830ef21f provide a definition for uintptr_t
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33592 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 23:52:33 +00:00
Chris Lattner
424db0209c Fix test/Transforms/InstCombine/2007-01-27-AndICmp.ll, a miscompilation of
Mozilla that Anton tracked down.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33591 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 23:08:34 +00:00
Chris Lattner
2064287934 Testcase for an instcombine miscompilation reduced by Anton.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33590 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 23:07:12 +00:00
Reid Spencer
4a29c48b01 Use -f option so test is repeatable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33589 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 21:10:35 +00:00
Reid Spencer
eb2073bf61 Add a test case for PR411.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33588 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 21:09:03 +00:00
Reid Spencer
0fb79b9374 Make this really do nothing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33587 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 21:08:29 +00:00