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
Owen Anderson
4a58bd331b
Clean this up, based on Evan's suggestions.
...
llvm-svn: 56009
2008-09-09 20:47:17 +00:00
Bill Wendling
ed3bb7888d
- Add support for 6-, 12-, and 18-bit limited precision floating-point "log"
...
values.
- Refactored some of the code.
llvm-svn: 56008
2008-09-09 20:39:27 +00:00
Argyrios Kyrtzidis
2b4072fe55
Implement parser support for the 'condition' part of C++ selection-statements and iteration-statements (if/switch/while/for).
...
Add new 'ActOnCXXConditionDeclarationExpr' action, called when the 'condition' is a declaration instead of an expression.
llvm-svn: 56007
2008-09-09 20:38:47 +00:00
Evan Cheng
53b728c27c
Fix PR2757. Ignore liveinterval register allocation preference if the preference register is not in the right register class. This can happen due to sub-register coalescing.
...
llvm-svn: 56006
2008-09-09 20:22:01 +00:00
Anton Korobeynikov
1a1140429e
Make safer variant of alias resolution routine to be default
...
llvm-svn: 56005
2008-09-09 20:05:04 +00:00
Steve Naroff
fac18fe2ee
Fix <rdar://problem/6197841> try, finally with no catch stops the exception from being propagated
...
llvm-svn: 56004
2008-09-09 19:59:12 +00:00
Duncan Sands
e5579930db
Simplify this some more. No functionality change.
...
llvm-svn: 56003
2008-09-09 19:56:34 +00:00
Argyrios Kyrtzidis
4f11d78fcc
IdentifierResolver cleanup. Make some methods out-of-line.
...
llvm-svn: 56002
2008-09-09 19:28:27 +00:00
Anton Korobeynikov
a9b60ee0fc
Resolve aliases, when possible
...
llvm-svn: 56001
2008-09-09 19:04:59 +00:00
Bill Wendling
faeb4b6755
Add limited precision floating-point conversions of log10 for 6- and 18-bit
...
precisions.
llvm-svn: 56000
2008-09-09 18:42:23 +00:00
Dan Gohman
4fcccd8d66
Mark IMPLICIT_DEF as being rematerializable and cheap-as-a-move.
...
It's already special-cased and treated as rematerializable within
LiveIntervals; this allows it to be handled by other passes
such as TwoAddressInstrctionPass.
llvm-svn: 55999
2008-09-09 18:25:28 +00:00
Anton Korobeynikov
4e518041d3
Fix typo
...
llvm-svn: 55998
2008-09-09 18:24:07 +00:00
Anton Korobeynikov
ac2c655808
Fix incorrect linker behaviour: we shouldn't resolve weak aliases.
...
llvm-svn: 55997
2008-09-09 18:23:48 +00:00