Evan Cheng
534fe1c405
Fix PR2664 - spiller GetRegForReload wasn't respecting sub-register indices on machine operands.
...
llvm-svn: 56065
2008-09-10 20:08:45 +00:00
Steve Naroff
2752a17a00
More semantic analysis for blocks...
...
llvm-svn: 56064
2008-09-10 19:17:48 +00:00
Steve Naroff
3ef15b5c2a
Sema::ActOnIdentifierExpr(): Lookup block arguments.
...
llvm-svn: 56063
2008-09-10 18:33:00 +00:00
Evan Cheng
710c3cf36a
Fix a fastcc + sret bug. If fastcc and sret, callee doesn't need to pop the hidden struct ptr; Re-enable fastcc.
...
llvm-svn: 56061
2008-09-10 18:25:29 +00:00
Argyrios Kyrtzidis
eece3fe4fd
Add some C++-specific comments in the parsing methods of if/switch/while/for.
...
llvm-svn: 56060
2008-09-10 17:38:35 +00:00
Dale Johannesen
4cc893bab6
Handle new intrinsics with vector arguments.
...
Patch by Paul Redmond.
llvm-svn: 56059
2008-09-10 17:31:40 +00:00
Dan Gohman
222018da7b
Add a break statement that I accidentally deleted when
...
I shuffled the fast-isel command-line options around. This fixes
a bunch of fast-isel failures.
llvm-svn: 56057
2008-09-10 15:52:34 +00:00
Devang Patel
728c44ab56
fix white spaces.
...
llvm-svn: 56056
2008-09-10 14:49:55 +00:00
Duncan Sands
6d6a65310b
Fix name.
...
llvm-svn: 56055
2008-09-10 13:22:10 +00:00
Duncan Sands
83e45acc25
Add trampoline support for the new FastCC calling
...
convention (not related to recent Ada testsuite
failures).
llvm-svn: 56054
2008-09-10 13:11:09 +00:00
Duncan Sands
536c399579
Turn off the new FastCC for the moment. It causes
...
a slew of Ada testsuite failures on x86-32 linux.
Seems to be related to the use of float.
llvm-svn: 56053
2008-09-10 13:09:24 +00:00
Daniel Dunbar
573884eaf7
Implement ABIArgType::Coerce support.
...
- As a test, enable basic usage for some common x86-32 cases. This
increases our x86-32 compliance (on other targets our compliance
will just be broken in a different way).
llvm-svn: 56051
2008-09-10 07:04:09 +00:00
Daniel Dunbar
b8b4759462
Add CodeGenTypes::GetFunctionType overload for getting the effective
...
type of a call.
Change NeXT runtime to use this instead of trying to bitcasting
internally (which doesn't respect the ABI).
Fix subtle bug, use of ConvertTypeRecursive instead of ConvertType is
bad inside GetFunctionType.
llvm-svn: 56050
2008-09-10 07:00:50 +00:00
Bill Wendling
6987fec11c
Remove unnecessary bit-wise AND from the limited precision work.
...
llvm-svn: 56049
2008-09-10 06:26:10 +00:00
Daniel Dunbar
999096065f
Fix 80 col violation.
...
llvm-svn: 56048
2008-09-10 04:16:29 +00:00
Daniel Dunbar
7a95ca3197
Move FunctionType conversion into CGCall.cpp:
...
- Added CodeGenTypes::GetFunctionType, taking a CGFunctionInfo.
- Updated Obj-C runtimes to use this instead of rolling the
llvm::FunctionType by hand.
- Killed CodeGenTypes::{ConvertReturnType, DecodeArgumentTypes}.
Add ABIArgInfo class to encapsulate ABI decision of how to lower types
to LLVM.
- Will move to target sometime soon.
llvm-svn: 56047
2008-09-10 04:01:49 +00:00
Daniel Dunbar
a72d4aece6
Add ABIArgInfo class to encapsulate ABI decision of how to lower types
...
to LLVM.
- Will move to target sometime soon.
llvm-svn: 56046
2008-09-10 02:41:04 +00:00
Argyrios Kyrtzidis
07052350f0
Implement CodeGen support for the 'CXXConditionDeclExpr' expression node, which represents a 'condition' declaration, e.g: "if (int x=0) {...}".
...
llvm-svn: 56045
2008-09-10 02:36:38 +00:00
Argyrios Kyrtzidis
7620ee4550
Implement Sema support for the 'condition' part of C++ selection-statements and iteration-statements (if/switch/while/for).
...
llvm-svn: 56044
2008-09-10 02:17:11 +00:00
Argyrios Kyrtzidis
791dc3cd4e
Change line endings: CRLF -> LF
...
llvm-svn: 56043
2008-09-10 02:14:49 +00:00
Argyrios Kyrtzidis
ac1f2abd93
Use Sema::isDeclInScope instead of IdentifierResolver::isDeclInScope.
...
llvm-svn: 56042
2008-09-10 02:11:07 +00:00
Dan Gohman
97f0a0f28d
Fix a warning about comparing signed and unsigned values.
...
llvm-svn: 56040
2008-09-10 01:09:32 +00:00
Daniel Dunbar
c68897d2c3
Tweak CGCall functions again:
...
- Realized these functions will eventually need access to more data,
moved to CodeGenModule. Eventually they should probably live
together in some other helper class.
llvm-svn: 56039
2008-09-10 00:41:16 +00:00
Daniel Dunbar
76c8eb75b1
Tweak CGCall functions:
...
- Move actual param attr list creation to
CodeGenFunction::ConstructParamAttrList.
- Make ReturnTypeUsesSret static.
llvm-svn: 56038
2008-09-10 00:32:18 +00:00
Evan Cheng
c6db3ad15f
Fix typo.
...
llvm-svn: 56037
2008-09-10 00:30:50 +00:00
Bill Wendling
eb1db169bf
Check that both operands are f32 before attempting to lower.
...
llvm-svn: 56036
2008-09-10 00:24:59 +00:00
Bill Wendling
648930b9ba
Implement "visitPow". This is mainly used to see if we have a pow() call of this
...
form:
powf(10.0f, x);
If this is the case, and also we want limited precision floating-point
calculations, then lower to do the limited-precision stuff.
llvm-svn: 56035
2008-09-10 00:20:20 +00:00
Daniel Dunbar
81cf67fa0b
Add CodeGenFunction::ReturnTypeUsesSret
...
- Hook so NeXT runtime doesn't depend on ABI.
llvm-svn: 56034
2008-09-09 23:48:28 +00:00
Argyrios Kyrtzidis
aa479138ea
Add new 'CXXConditionDeclExpr' expression node used for a 'condition' declaration, e.g: "if (int x=0) {...}".
...
It is a subclass of DeclRefExpr and the main difference is that CXXConditionDeclExpr owns the declaration that it references.
llvm-svn: 56033
2008-09-09 23:47:53 +00:00
Evan Cheng
0fff397a13
A few more places where FPOW is being ignored.
...
llvm-svn: 56032
2008-09-09 23:35:53 +00:00
Daniel Dunbar
613855c8af
Move ABI specific code for functions / calls to CGCall.cpp:
...
- Factor out EmitFunction{Pro,Epi}log
llvm-svn: 56031
2008-09-09 23:27:19 +00:00
Daniel Dunbar
bc915f4025
Factor CodeGenFunction::StartFunction out of GenerateCode and
...
StartObjCMethod.
llvm-svn: 56030
2008-09-09 23:14:03 +00:00
Dan Gohman
b4c0295b8e
Change -fast-isel-no-abort to -fast-isel-abort, which now defaults
...
to being off by default. Also, add assertion checks to check that
the various fast-isel-related command-line options are only used
when -fast-isel itself is enabled.
llvm-svn: 56029
2008-09-09 23:05:00 +00:00
Evan Cheng
f4e5de4583
Legalizer was missing code that expand fpow to a libcall.
...
llvm-svn: 56028
2008-09-09 23:02:14 +00:00
Bill Wendling
ab6676a46a
Adding 6-, 12-, and 18-bit limited-precision floating-point support for exp2
...
function.
llvm-svn: 56025
2008-09-09 22:39:21 +00:00
Dale Johannesen
abb1e7770b
Move the uglier parts of deciding not to emit a
...
UsedDirective for some symbols in llvm.used into
Darwin-specific code. I've decided LessPrivateGlobal
is potentially a useful abstraction and left it in
the target-independent area, with improved comment.
llvm-svn: 56024
2008-09-09 22:29:13 +00:00
Bill Wendling
48217d89b4
Add support for 6-, 12-, and 18-bit limited precision calculations of exp for
...
floating-point numbers.
llvm-svn: 56023
2008-09-09 22:13:54 +00:00
Dan Gohman
fb9dbe0f5b
Fix a minor wording ambiguity in the Developer Policy.
...
llvm-svn: 56022
2008-09-09 22:13:09 +00:00
Dan Gohman
91491b51e2
Add a new option, -fast-isel-verbose, that can be used with
...
-fast-isel-no-abort to get a dump of all unhandled instructions,
without an abort.
llvm-svn: 56021
2008-09-09 22:06:46 +00:00
Argyrios Kyrtzidis
2bdac73591
Make IdentifierResolver::isDeclInScope regard declarations of a parent 'control' scope as part of the current scope.
...
The 'control' scope is the 'condition' scope of if/switch/while statements and the scope that contains the for-init-statement and 'condition' of a for statement.
e.g:
if (int x = 0 /*'control' scope*/) {
// x will be regarded as part of this substatement scope.
} else {
// and as part of this substatement scope too.
}
llvm-svn: 56020
2008-09-09 21:57:58 +00:00
Evan Cheng
93945287b8
Clear preference when it no longer makes sense.
...
llvm-svn: 56019
2008-09-09 21:44:23 +00:00
Devang Patel
b4061e8ce4
Remove.
...
llvm-svn: 56018
2008-09-09 21:41:34 +00:00
Devang Patel
92b032f3e6
if loop induction variable is always sign or zero extended then
...
extend the type of induction variable.
llvm-svn: 56017
2008-09-09 21:41:07 +00:00
Devang Patel
18ff6367f7
Add assertion check.
...
llvm-svn: 56016
2008-09-09 21:38:40 +00:00
Argyrios Kyrtzidis
f4b92e6924
Add a LangOptions member to IdentifierResolver.
...
Make Sema pass the LangOptions to IdentifierResolver's constructor.
llvm-svn: 56015
2008-09-09 21:32:02 +00:00
Argyrios Kyrtzidis
5b144d5cc4
Add Sema::isDeclInScope which wraps IdentifierResolver::isDeclInScope.
...
No functionality change.
llvm-svn: 56014
2008-09-09 21:18:04 +00:00
Daniel Dunbar
54bb1933b1
Use a unified return block.
...
- For the time being this means our emitted code is somewhat worse,
especially for aggregates. This will be fixed.
llvm-svn: 56013
2008-09-09 21:00:17 +00:00
Argyrios Kyrtzidis
f602e427e9
Fix test case.
...
llvm-svn: 56012
2008-09-09 20:56:12 +00:00
Devang Patel
92c5367705
fix overflow check.
...
llvm-svn: 56011
2008-09-09 20:54:34 +00:00
Daniel Dunbar
0bc8e86d6e
Move EmitAggregate{Copy,Clear} into CodeGenFunction.
...
- No functionality change.
llvm-svn: 56010
2008-09-09 20:49:46 +00:00