Devang Patel
dd4d45337b
getresult does not support nested aggregates.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47396 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20 19:39:41 +00:00
Devang Patel
9fcde0fa13
Verifier should use Assert1 instead of assert.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47394 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20 19:32:20 +00:00
Devang Patel
474869f2b2
getresult type is the type of indexed aggregate element
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47392 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20 19:26:55 +00:00
Devang Patel
23755d8755
Specify GetResultInst index as an unsigned.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47390 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20 19:10:47 +00:00
Devang Patel
85eab709ca
Use isValidOperands() to verify GetResultInst.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47387 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20 18:36:46 +00:00
Anton Korobeynikov
4aefd6b7d4
Fix newly-introduced 4.3 warnings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47375 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20 12:07:57 +00:00
Anton Korobeynikov
ae9f3a3b7c
Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47367 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20 11:08:44 +00:00
Dale Johannesen
6167c3fcda
Add Alignment field to ParameterAttributes and
...
treat more or less rationally in interface
functions, subject to change. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47352 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19 23:51:49 +00:00
Devang Patel
40a04216da
Add GetResultInst. First step for multiple return value support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47348 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19 22:15:16 +00:00
Dale Johannesen
0d51e7ec0d
Expand ParameterAttributes to 32 bits (in preparation
...
for adding alignment info, not there yet). Clean up
interfaces to reference ParameterAttributes consistently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47342 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19 21:38:47 +00:00
Chris Lattner
46acf85b97
Fix some minor issues folding undef, PR2052
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47314 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19 06:22:12 +00:00
Duncan Sands
548448a317
Simplify caller updating using a CallSite, as
...
requested by Chris. While there, do the same
for an existing function committed by someone
called "lattner" :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47273 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-18 17:32:13 +00:00
Owen Anderson
874a892c99
I got the predicate backwards in my last patch. The comment is correct, the code was not.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47264 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-18 09:22:21 +00:00
Owen Anderson
9eb948b466
Duncan pointed out that we can fast fail here, because the sret parameter of
...
a function must be the first parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47254 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-18 04:06:26 +00:00
Owen Anderson
7d54254c9c
Add a predicate to Argument to check for the StructRet attribute.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47248 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-17 23:22:28 +00:00
Duncan Sands
b3a94608b3
Some micro-optimizations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47219 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-16 20:53:06 +00:00
Chris Lattner
705da96697
targets that support quotes for mangled names still need to escape newlines
...
when they occur in the name, just like " is escaped.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47169 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-15 18:54:56 +00:00
Chris Lattner
9071dd3a57
check that terminators only occur at the end of a block. This catches the
...
common problem of putting two terminators in the same block. I can't write
a testcase for this because the .ll parser rejects this before the verifier
can, but this can occur when generating IR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46900 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-09 01:06:01 +00:00
Dan Gohman
b3f5cfc670
Fix a typo in a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46836 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07 02:30:40 +00:00
Devang Patel
1cf47cb217
Add comment explaining what is lower level analysis pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46658 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-02 01:43:30 +00:00
Gordon Henriksen
e62a8a353c
Fixing a bug creating floating point constants of type other
...
than double through the C bindings. Thanks to Tomas Lindquist
Olsen for reporting it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46656 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-02 01:07:50 +00:00
Dan Gohman
97cf759b82
Fix 80-col violations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46510 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29 12:09:55 +00:00
Dan Gohman
1327f69d98
Add explicit keywords.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46506 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29 11:36:12 +00:00
Nick Lewycky
4189a538e4
Handle some more combinations of extend and icmp. Fixes PR1940.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46431 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-28 03:48:02 +00:00
Chris Lattner
de6fa5f25f
Add hasByValAttr() and hasNoAliasAttr() methods to the Argument class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46314 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-24 17:47:11 +00:00
Duncan Sands
03531a4816
It turns out that in C++ it is legal to declare functions
...
that return an opaque type by value, as long as you don't
call it or provide a body (you can take the address of it).
So it is wrong to insist that sret parameters not be an
opaque*. And I guess it is really up to codegen to complain
if someone tries to call such a function. I'm also removing
the analogous check from byval parameters, since I don't
see why we shouldn't allow them as long as no-one tries to
call the function or give it a body.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46216 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-21 21:37:41 +00:00
Duncan Sands
333e8be5e8
Check that sret is only used on pointers to types
...
with a size, like byval.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46207 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-21 11:28:49 +00:00
Duncan Sands
53d4afcee9
Be consistent with other attribute methods, and
...
check the callee also if it is known.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46206 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-21 11:27:55 +00:00
Chris Lattner
163974de47
improve compatibility with mingw, patch by Alain Frisch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46026 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15 22:50:50 +00:00
Bill Wendling
585e64e63e
Reformatted. It was confusing the other way. No functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-15 21:16:32 +00:00
Duncan Sands
15ea48c9ce
Simplify CallInst::hasByValArgument using a new method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45974 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-14 19:57:00 +00:00
Duncan Sands
b0c9b93bb4
I noticed that the trampoline straightening transformation could
...
drop attributes on varargs call arguments. Also, it could generate
invalid IR if the transformed call already had the 'nest' attribute
somewhere (this can never happen for code coming from llvm-gcc,
but it's a theoretical possibility). Fix both problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45973 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-14 19:52:09 +00:00
Evan Cheng
42725e7251
Simplify code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45950 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-14 02:38:45 +00:00
Duncan Sands
421d1c93cc
Allow the byval attribute for pointers to any type with
...
a size, not just structs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45938 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-13 21:19:12 +00:00
Evan Cheng
f4a5498ab4
Add hasByValArgument() to test if a call instruction has byval argument(s).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45913 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-12 18:57:32 +00:00
Duncan Sands
cfad1b4f78
Be more liberal in what parameter attributes are
...
allowed on the vararg arguments of a call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45909 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-12 16:42:01 +00:00
Duncan Sands
623a389f62
Do not allow attributes beyond a function's last
...
parameter, even if it is a varargs function. Do
allow attributes on the varargs part of a call,
but not beyond the last argument. Only allow
selected attributes to be on the varargs part of
a call (currently only 'byval' is allowed). The
reasoning here is that most attributes, eg inreg,
simply make no sense here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45887 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-11 22:36:48 +00:00
Evan Cheng
c37ab63df7
Allow parameter attributes on varargs function parameters.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45850 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-11 02:13:09 +00:00
Duncan Sands
6c3470efdc
Small cleanup for handling of type/parameter attribute
...
incompatibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45704 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-07 17:16:06 +00:00
Duncan Sands
ad9a9e1559
The transform that tries to turn calls to bitcast functions into
...
direct calls bails out unless caller and callee have essentially
equivalent parameter attributes. This is illogical - the callee's
attributes should be of no relevance here. Rework the logic, which
incidentally fixes a crash when removed arguments have attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45658 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-06 18:27:01 +00:00
Duncan Sands
a9d0c9dc58
When transforming a call to a bitcast function into
...
a direct call with cast parameters and cast return
value (if any), instcombine was prepared to cast any
non-void return value into any other, whether castable
or not. Add a new predicate for testing whether casting
is valid, and check it both for the return value and
(as a cleanup) for the parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45657 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-06 10:12:28 +00:00
Gordon Henriksen
23d9791ddd
Trying that again.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45529 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-03 03:32:33 +00:00
Gordon Henriksen
98232f5859
Fix a compile error on Windows.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45528 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-03 03:21:18 +00:00
Chris Lattner
50cffa0107
Remove the function attr cache for intrinsics. This does not maintain the
...
refcount on these correctly, and can end up referring to deleted
attributes. This fixes PR1881.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45525 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-03 01:20:12 +00:00
Chris Lattner
89e94bd00c
Don't create a new ParamAttrsList (which copies the vector) just to
...
get a profile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45524 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-03 00:29:27 +00:00
Chris Lattner
fabfde3ff0
move some code out of line, rearrange a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45519 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-03 00:10:22 +00:00
Chris Lattner
50ee9ddc8f
Split param attr implementation out from Function.cpp into its
...
own file. Don't #include ParameterAttributes.h into any major
public header files: just move methods out of line as appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45517 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-02 23:42:30 +00:00
Chris Lattner
f897b7d305
remove blob of #if'd out code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45512 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-02 23:10:45 +00:00
Chris Lattner
5dfdc1c809
Fix a build issue on cygwin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45506 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-02 22:03:27 +00:00
Gordon Henriksen
ab477ccde9
Adding C bindings for SwitchInst::addCase.
...
Patch by Bryan O'Sullivan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45481 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-01 05:50:53 +00:00
Gordon Henriksen
dc2c07a7cf
Add some doxygen comments to llvm-c/Core.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45450 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-30 17:46:33 +00:00
Chris Lattner
4ee451de36
Remove attribution from file headers, per discussion on llvmdev.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 20:36:04 +00:00
Chris Lattner
fc643c5e88
remove attribution from lib Makefiles.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45415 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 20:09:26 +00:00
Gordon Henriksen
a353ffa7e5
Adding bindings for target triple and data layout.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45369 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-27 20:13:47 +00:00
Gordon Henriksen
1d2e49cd84
Switch the bindings to use LLVMFoldingBuilder.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45367 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-27 18:25:59 +00:00
Gordon Henriksen
e1433f24cf
Noting and enforcing that GC intrinsics are valid only within a
...
function with GC.
This will catch the error when the inliner inlines a function with
GC into a caller with no GC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45350 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-25 02:31:26 +00:00
Gordon Henriksen
27acd3a999
Adjusting verification of "llvm.gc*" intrinsic prototypes to match
...
LangRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45349 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-25 02:02:10 +00:00
Duncan Sands
d9d70395d9
Get the verifier to check attributes on calls as well
...
as on functions. Make it verify invokes and not just
ordinary calls. As a (desired) side-effect, it is no
longer legal to have call attributes on arguments that
are being passed to the varargs part of a varargs
function (llvm-as drops them on the floor anyway).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45286 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-21 19:19:01 +00:00
Gordon Henriksen
da1435f86e
Adding bindings for memory buffers and module providers. Switching
...
to exceptions rather than variants for error handling in Ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45226 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-19 22:30:40 +00:00
Duncan Sands
f0c3354d99
When inlining through an 'nounwind' call, mark inlined
...
calls 'nounwind'. It is important for correct C++
exception handling that nounwind markings do not get
lost, so this transformation is actually needed for
correctness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45218 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-19 21:13:37 +00:00
Chris Lattner
e395598c98
remove a dead annotation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45163 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-18 19:04:24 +00:00
Duncan Sands
2b0e8990ab
Rename isNoReturn to doesNotReturn, and isNoUnwind to
...
doesNotThrow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45160 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-18 09:59:50 +00:00
Christopher Lamb
ef989a275c
Don't forget to print address space qualifiers when printing out the type table! Thanks to Gordon Henriksen for pointing this out.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45147 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-18 03:49:35 +00:00
Evan Cheng
a5cecd0a13
Remove int_x86_sse2_movl_dq. It's replaced with a string compare.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45140 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-18 01:04:25 +00:00
Evan Cheng
f9b83fcf95
Bring back int_x86_sse2_movl_dq intrinsic for backward compatibility. Make sure
...
it's auto-upgraded to a shufflevector instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45131 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17 22:33:23 +00:00
Duncan Sands
fd7b326bea
Make invokes of inline asm legal. Teach codegen
...
how to lower them (with no attempt made to be
efficient, since they should only occur for
unoptimized code).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45108 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17 18:08:19 +00:00
Gordon Henriksen
57cebeec7b
C and Ocaml bindings for address spaces, for that burgeoning market
...
for Ocaml-based compilers targeting embedded devices. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45096 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17 16:08:32 +00:00
Christopher Lamb
43ad6b3e0d
Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45082 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17 01:12:55 +00:00
Christopher Lamb
303dae993a
Make it clear in the LangRef that allocation instructions only operated on the generic address space. Implement support in the verifier for ensuring this is true.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45080 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17 01:00:21 +00:00
Duncan Sands
ece2c04d53
Make instcombine promote inline asm calls to 'nounwind'
...
calls. Remove special casing of inline asm from the
inliner. There is a potential problem: the verifier
rejects invokes of inline asm (not sure why). If an
asm call is not marked "nounwind" in some .ll, and
instcombine is not run, but the inliner is run, then
an illegal module will be created. This is bad but
I'm not sure what the best approach is. I'm tempted
to remove the check in the verifier...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45073 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-16 15:51:49 +00:00
Anders Carlsson
d04764a8ac
All MMX shift instructions took a <2 x i32> vector as the shift amount parameter. Change this to be <1 x i64> instead, which matches the assembler instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45027 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-14 06:38:54 +00:00
Duncan Sands
7915cbee4d
Revert r44626, which turned off the use of readonly
...
and readnone for functions with bodies because it
broke llvm-gcc-4.2 bootstrap. It turns out that,
because of LLVM's array_ref hack, gcc was computing
pure/const attributes wrong (now fixed by turning
off the gcc ipa-pure-const pass).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44937 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 16:01:40 +00:00
Gordon Henriksen
1ae6135fa3
Add (very basic) bindings for ModuleProvider.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44899 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12 01:04:30 +00:00
Christopher Lamb
fe63fb986d
Implement address space attribute for LLVM pointer types. Address spaces are
...
regions of memory that have a target specific relationship, as described in the
Embedded C Technical Report.
This also implements the 2007-12-11-AddressSpaces test,
which demonstrates how address space attributes can be used in LLVM IR.
In addition, this patch changes the bitcode signature for stores (in a backwards
compatible manner), such that the pointer type, rather than the pointee type, is
encoded. This permits type information in the pointer (e.g. address space) to be
preserved for stores.
LangRef updates are forthcoming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44858 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 08:59:05 +00:00
Chris Lattner
7431c2ba79
Teach VMCore to constant fold shufflevectors with constant operands.
...
This allows us to compile:
#include <emmintrin.h>
typedef __m128i VSInt16;
typedef short vSInt16 __attribute__ ((__vector_size__ (16)));
VSInt16 t3() {
return (VSInt16)((vSInt16)_mm_set1_epi16(6518));
}
into:
_t3:
movaps LCPI1_0, %xmm0
ret
instead of:
_t3:
movl $6518, %eax
movd %eax, %xmm0
pextrw $0, %xmm0, %eax
xorps %xmm0, %xmm0
pinsrw $0, %eax, %xmm0
punpcklwd %xmm0, %xmm0
pshufd $0, %xmm0, %xmm0
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44856 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 07:49:37 +00:00
Chris Lattner
9eaa835e88
significantly simplify some code, no functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44850 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 06:07:39 +00:00
Chris Lattner
2b0f806c88
refactor some code, no functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44849 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11 05:55:02 +00:00
Chris Lattner
f286f6fd93
Fix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp.
...
Reimplement the xform in Analysis/ConstantFolding.cpp where we can use
targetdata to validate that it is safe. While I'm in there, fix some const
correctness issues and generalize the interface to the "operand folder".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44817 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10 22:53:04 +00:00
Gordon Henriksen
53c34b1db9
Delete the CollectorNamePool if it should become empty.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44775 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10 03:35:18 +00:00
Gordon Henriksen
80a75bfae9
Adding a collector name attribute to Function in the IR. These
...
methods are new to Function:
bool hasCollector() const;
const std::string &getCollector() const;
void setCollector(const std::string &);
void clearCollector();
The assembly representation is as such:
define void @f() gc "shadow-stack" { ...
The implementation uses an on-the-side table to map Functions to
collector names, such that there is no overhead. A StringPool is
further used to unique collector names, which are extremely
likely to be unique per process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44769 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10 03:18:06 +00:00
Gordon Henriksen
afba8fe662
Reverting dtor devirtualization patch.
...
_sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed
_sabre_: the vtable lives to fight another day
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44760 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10 02:14:30 +00:00
Chris Lattner
d418239da7
fix some warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44756 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10 01:51:22 +00:00
Chris Lattner
429c8221cc
Fix a big problem in the recent dtor refactoring work, now it passes 2007-11-19-InlineAsm.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44755 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10 01:48:29 +00:00
Gordon Henriksen
ed455c8fa2
Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44747 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-09 22:46:10 +00:00
Duncan Sands
5d84afdc83
Commit 44487 broke bootstrap of llvm-gcc-4.2. It is
...
not yet clear why, but in the meantime work around the
problem by making less use of readnone/readonly info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44626 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05 21:03:28 +00:00
Duncan Sands
a3355ffb3d
Rather than having special rules like "intrinsics cannot
...
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03 20:06:50 +00:00
Duncan Sands
6bb0ae4711
Small optimization of parameter attribute lookup.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44458 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30 18:20:58 +00:00
Duncan Sands
757d243167
Add a convenience method for modifying parameter
...
attributes. While there, I noticed that not all
attribute methods returned a pointer-to-constant,
so I fixed that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44457 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30 18:19:18 +00:00
Duncan Sands
a8b974648f
Check that there are not more attributes than
...
function parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44452 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30 15:52:20 +00:00
Duncan Sands
fd8890dbee
Small parameter attributes cleanup.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44433 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-29 08:30:15 +00:00
Duncan Sands
afa3b6da11
Add some convenience methods for querying attributes, and
...
use them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44403 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28 17:07:01 +00:00
Duncan Sands
dc024674ff
Fix PR1146: parameter attributes are longer part of
...
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27 13:23:08 +00:00
Duncan Sands
827cde1c83
Fix PR1816. If a bitcast of a function only exists because of a
...
trivial difference in function attributes, allow calls to it to
be converted to direct calls. Based on a patch by Török Edwin.
While there, move the various lists of mutually incompatible
parameters etc out of the verifier and into ParameterAttributes.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44315 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-25 14:10:56 +00:00
Duncan Sands
ed4a2f1688
Rename the 'const' parameter attribute to 'readnone',
...
and the 'pure' parameter attribute to 'readonly'.
Names suggested by DannyB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44273 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-22 20:23:04 +00:00
Duncan Sands
5e41f65699
In order for parameter attribute uniquing to make
...
any sense it is important that ParamAttr::None gets
treated the same as not supplying an attribute at
all. Rather than stripping ParamAttr::None out of
the list of attributes, assert if ParamAttr::None
is seen. Fix up the bitcode reader which liked to
insert ParamAttr::None all over the place. Patch
based on one by Török Edwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44250 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-20 14:09:29 +00:00
Dan Gohman
50cdabcfd5
Remove meaningless qualifiers from return types, avoiding compiler warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44240 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-19 20:46:23 +00:00
Chris Lattner
b28a6dce6d
print a call to a fastcc function as:
...
call x86_fastcallcc void @func( i32* %X, i64 0 )
not:
callx86_fastcallcc void @func( i32* %X, i64 0 )
This fixes Codegen/X86/fast-cc-merge-stack-adj.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44217 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-18 18:32:16 +00:00
Nate Begeman
b348d18caf
Add support for vectors to int <-> float casts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44204 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-17 03:58:34 +00:00
Nate Begeman
5db1afb462
Basic non-power-of-2 vector support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44181 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-15 21:15:26 +00:00
Duncan Sands
c455ebeb0c
I discover array_lengthof, thanks to gabor on #llvm.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44139 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14 21:58:02 +00:00
Duncan Sands
0a4f91ea18
Simplify the attribute verification code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44116 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14 14:02:11 +00:00
Anton Korobeynikov
0adb7b41e7
Add pure/const attributes. Documentation will follow.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44109 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-14 09:52:30 +00:00
Duncan Sands
d0561900f3
Don't barf on empty basic blocks. Do not rely on assert
...
doing something - this needs to work for release builds
too. I chose to just abort rather than following the
fancy logic of abortIfBroken, because (1) it is a pain
to do otherwise, and (2) nothing is going to work if the
module is this broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43611 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-01 10:50:26 +00:00
Chris Lattner
b5c91641b5
remove verifier command line option: this should be part of the API, not
...
a command line optn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43603 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-01 04:43:13 +00:00
Owen Anderson
765d64501c
Now with less tabs!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43601 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-01 03:54:23 +00:00
Chris Lattner
e41dcdc964
Fix InstCombine/2007-10-31-StringCrash.ll by removing an obvious
...
(in hindsight) infinite recursion. Simplify the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43597 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-01 02:30:35 +00:00
Dan Gohman
2cda9399de
Fix a regression in test/CodeGen/X86/2007-04-24-VectorCrash.ll introduced
...
by r43510. Gracefully handle constants with vector type that aren't
ConstantVector or ConstantAggregateZero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43579 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31 21:36:31 +00:00
Owen Anderson
c570e33a61
Add a preverifier pass to check that every basic block ends in a terminator, so that we don't segfault when verifying invalid code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43578 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31 21:04:18 +00:00
Dan Gohman
d61de35564
Add support for folding binary operators with vector zero operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43510 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-30 19:00:49 +00:00
Chris Lattner
0569187653
I am not sure this is a good idea to be an option, but rename the option for
...
now. It conflicts with clang's -pedantic flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43431 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-29 03:14:55 +00:00
Anton Korobeynikov
536c64b4d6
Add 'pedantic' mode to verifier rejecting syntactically valid, but 'bad' due to other reasons code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43424 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-28 22:50:32 +00:00
Owen Anderson
d20cc14dbf
Make DomTree and PostDomTree thin wrappers around DomTreeBase, rather than inheriting from it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43259 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 20:58:37 +00:00
Dan Gohman
ac72058dd6
The #include <iterator> isn't needed in this header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43232 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 20:44:10 +00:00
Chris Lattner
b7daa84a35
this doesn't need dynamic_cast.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43133 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-18 16:26:24 +00:00
Chris Lattner
fe3e3f4438
Reduce reliance on rtti info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43130 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-18 16:11:18 +00:00
Chris Lattner
53336cb47e
fix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43129 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-18 16:10:48 +00:00
Dan Gohman
3b7cf0aaba
Define a helper function ConstantVector::getSplatValue for testing for
...
and working with broadcasted constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43076 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-17 17:51:30 +00:00
Owen Anderson
05d2318fbd
Move splitBlock into DomTreeBase from DomTree.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43059 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-17 02:03:17 +00:00
Dale Johannesen
db44bf85d8
Disable attempts to constant fold PPC f128.
...
Remove the assumption that this will happen from
various places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43053 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-16 23:38:29 +00:00
Owen Anderson
49b653aa6a
Template DominatorTreeBase by node type. This is the next major step towards
...
having dominator information on MBB's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43036 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-16 19:59:25 +00:00
Duncan Sands
af47b11b95
Initial infrastructure for arbitrary precision integer
...
codegen support. This should have no effect on codegen
for other types. Debatable bits: (1) the use (abuse?)
of a set in SDNode::getValueTypeList; (2) the length of
getTypeToTransformTo, which maybe should be refactored
with a non-inline part for extended value types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43030 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-16 09:56:48 +00:00
Chris Lattner
3cab1c72b5
avoid an APFloat copy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42979 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-15 05:34:10 +00:00
Dale Johannesen
5927d8e94d
Disable some compile-time optimizations on PPC
...
long double.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42958 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-14 01:56:47 +00:00
Dale Johannesen
a471c2ecda
Next PPC long double bits. First cut at constants.
...
No compile-time support for constant operations yet,
just format transformations. Make readers and
writers work. Split constants into 2 doubles in
Legalize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42865 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-11 18:07:22 +00:00
Gordon Henriksen
2618a6c112
C and Objective Caml bindings for PHINode::addIncoming etc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42760 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08 18:14:39 +00:00
Evan Cheng
b428657504
Remove debugging printf to get build going on x86-64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42757 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08 17:49:43 +00:00
Dan Gohman
cdf2b3b2f8
Add explicit keywords.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42747 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08 15:08:41 +00:00
Owen Anderson
1aad74c9e8
Begin the process of allowing DomTree on MBB's. Step One: template DomTreeNode by making it a typedef of a templated DomTreeNodeBase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42743 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08 07:44:39 +00:00
Gordon Henriksen
6d6203dff3
C and Objective Caml bindings for getFunction and getNamedGlobal. Also enhanced
...
the Objective Caml 'declare_*' functions to behave more or less like
getOrInsertFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42740 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08 03:45:09 +00:00
Gordon Henriksen
c84c16be9b
C and Objective Caml bindings for GlobalVariable::isConstant.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42736 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07 17:31:42 +00:00
Neil Booth
ccf596a53e
convertFromInteger, as originally written, expected sign-extended
...
input. APInt unfortunately zero-extends signed integers, so Dale
modified the function to expect zero-extended input. Make this
assumption explicit in the function name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42732 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07 11:45:55 +00:00
Gordon Henriksen
1cf08fddc7
C and Objective Caml bindings for PATypeHolder.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42713 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07 00:13:35 +00:00
Gordon Henriksen
81a788176e
Adopting a uniform naming convention for type constructors in bindings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42698 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-06 16:05:20 +00:00
Gordon Henriksen
e3b989d4a4
Adopting a uniform naming convention for constant constructors in bindings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42697 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-06 15:11:06 +00:00
Gordon Henriksen
4647569fe7
Adding C and Ocaml bindings for ConstantExpr.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42696 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-06 14:29:36 +00:00
Gordon Henriksen
88cc699942
Wrapping Value::dump.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42668 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-06 00:08:49 +00:00
Gordon Henriksen
acd96191cd
Removing the silly CHelpers header by rolling wrap and unwrap into the C
...
bindings headers themselves, hidden behind #ifdef __cplusplus.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42666 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-05 23:59:36 +00:00
Devang Patel
5c4cd0d82e
Fix bug in updating dominance frontier after loop
...
unswitch when frontier includes basic blocks that
are not inside loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42654 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-05 22:29:34 +00:00
Owen Anderson
9cb7f49ee9
Completely merge the implementation details of DomTree and PostDomTree.
...
Also, add a FIXME for a bug in PostDomTree calculation I noticed while writing this,
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42593 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03 21:25:45 +00:00
Dan Gohman
cb406c2597
Use empty() member functions when that's what's being tested for instead
...
of comparing begin() and end().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42585 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03 19:26:29 +00:00
Dan Gohman
2bb7d0647e
Fix a using namespace llvm; in a header file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42584 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03 19:04:09 +00:00
Owen Anderson
471ab54df7
Factor some code from the DomTree and PostDomTree calculate methods up into
...
each one's runOnFunction method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42563 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03 03:20:17 +00:00
Dale Johannesen
88216af3ea
Constant fold int-to-long-double conversions;
...
use APFloat for int-to-float/double; use
round-to-nearest for these (implementation-defined,
seems to match gcc).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42484 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-30 18:19:03 +00:00
Owen Anderson
ab528fe0fb
Template-ize more of the DomTree internal implementation details. Only the calculate() methods for DomTree and PostDomTree remain to be merged/template-ized.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42476 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-30 04:17:16 +00:00
Duncan Sands
f51edadfe8
Check that the second parameter of init_trampoline
...
can be resolved to a function. This is required
for codegen and used by instcombine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42469 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-29 16:25:54 +00:00
Gordon Henriksen
d070d1e56f
Demoting CHelpers.h to include/llvm/Support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42465 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-29 01:38:42 +00:00
Chris Lattner
d7c4ca1009
Make Value::getNameLen not crash on an empty name, fixing PR1712.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42444 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-28 20:09:40 +00:00
Owen Anderson
303f47b1dd
Have PostDomTree use the newly templated DFSPass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42427 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-28 01:23:47 +00:00
Owen Anderson
58ec8825d4
Convert DFSPass into a templated friend function, in preparation for making it common to DomTree and PostDomTree.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42420 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-27 23:23:00 +00:00
Dale Johannesen
693717fbe6
Make temporaries explicit to avoid premature
...
destruction of compiler-created ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42383 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 23:20:33 +00:00