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
Anton Korobeynikov
6acb2219b6
Replace explicit pointer-size constants to TargetData query.
...
No functionality change.
llvm-svn: 55996
2008-09-09 18:22:57 +00:00
Dan Gohman
86fb5b48de
Make SimplifyDemandedVectorElts simplify vectors with multiple
...
users, and teach it about shufflevector instructions.
Also, fix a subtle bug in SimplifyDemandedVectorElts'
insertelement code.
This is a patch that was originally written by Eli Friedman,
with some fixes and cleanup by me.
llvm-svn: 55995
2008-09-09 18:11:14 +00:00
Anders Carlsson
4f1c7c3773
Check in half-assed implementation of @try/@catch.
...
llvm-svn: 55994
2008-09-09 17:59:25 +00:00
Devang Patel
a328690ed3
Simplify.
...
Fix outdated comment.
llvm-svn: 55993
2008-09-09 17:56:50 +00:00
Gabor Greif
ea79c3e7a0
fit in 80 cols, minor tweaks
...
llvm-svn: 55992
2008-09-09 17:52:13 +00:00
Anders Carlsson
e005aa13f1
Simple @throw support.
...
llvm-svn: 55991
2008-09-09 16:16:55 +00:00
Steve Naroff
44cfcb6fb1
Tweak implementation for allowing ObjC builtin type redefinitions.
...
- Replace string comparisons with pre-defined idents.
- Avoid calling isBuiltinObjCType() to avoid two checks.
- Remove isBuiltinObjCType(), since it was only used in Sema::MergeTypeDefDecl().
- Have Sema::MergeTypeDefDecl() set the new type.
This is a moidified version of an patch by David Chisnall.
llvm-svn: 55990
2008-09-09 14:32:20 +00:00
Steve Naroff
58d5ea7ac9
Simplify typesAreBlockCompatible().
...
llvm-svn: 55989
2008-09-09 13:47:19 +00:00
Duncan Sands
d7ba10c31b
Optimization suggested by Matthijs Kooijman.
...
llvm-svn: 55988
2008-09-09 13:44:24 +00:00
Duncan Sands
c189e79440
Correct callgraph construction. It has two problems:
...
(1) code left over from the days of ConstantPointerRef:
if a use of a function is a GlobalValue then that is
not considered a reason to add an edge from the external
node, even though the use may be as an initializer for
an externally visible global! There might be some point
to this behaviour when the use is by an alias (though the
code predated aliases by some centuries), but I think
PR2782 is a better way of handling that. (2) If function
F calls function G, and also G is a parameter to the
call, then an F->G edge is not added to the callgraph.
While this doesn't seem to matter much, adding such an
edge makes the callgraph more regular.
In addition, the new code should be faster as well as
simpler.
llvm-svn: 55987
2008-09-09 12:40:47 +00:00
Argyrios Kyrtzidis
03849a2c5b
Update VC++ project files.
...
llvm-svn: 55986
2008-09-09 11:39:45 +00:00