Anton Korobeynikov
46885ded4e
Fix a silly darwin-only typo introduced during merge.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96289 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 22:38:10 +00:00
Anton Korobeynikov
362dd0bef5
Move TLOF implementations to libCodegen to resolve layering violation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96288 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 22:37:53 +00:00
Anton Korobeynikov
ac8a3d0b5b
It turns out that we emitted completely wrong common EH frame since the early beginning! The "z" CIE augmentation mark indicates that there is an extra word containing the size of augmentation section. However, even for frames w/o any augmentation data we emitted size uleb! (this is the case of "unwinding through C code"). Thus frame moves information was emitterd completely wrong.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96287 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 22:36:41 +00:00
Anton Korobeynikov
990a9fde39
Add suffix for stubs, so we won't have name clashes with private symbols.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96286 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 22:36:26 +00:00
Anton Korobeynikov
9184b25fa5
Preliminary patch to improve dwarf EH generation - Hooks to return Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 22:35:59 +00:00
Nick Lewycky
6a7cb63f6f
Teach the verifier to check the condition on a branch and ensure that it has
...
'i1' type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96282 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 22:09:09 +00:00
Jakob Stoklund Olesen
8eea48a43d
Fix PR6300.
...
A virtual register can be used before it is defined in the same MBB if the MBB
is part of a loop. Teach the implicit-def pass about this case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96279 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 22:03:29 +00:00
Bob Wilson
f1b0a345d3
Last week we were generating code with duplicate induction variables in this
...
test, but the problem seems to have gone away today. Add a check to make sure
it doesn't come back.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96277 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 21:56:40 +00:00
Nick Lewycky
6e5a2bd032
Fix crash in VerifyType when checking Contexts. Because there may not be a
...
Module (we were called with verifyFunction and an unowned Function) we can't
rely on Mod->getContext().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96275 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 21:52:04 +00:00
Nick Lewycky
c638088d6f
Don't try to materialize a function that isn't materializable anyways. This
...
fixes a crash using FPM on a Function that isn't owned by a Module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96273 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 21:27:56 +00:00
Nick Lewycky
936c43bb23
A function with no Module owner isn't materializable. This fixes F->dump() for
...
functions not embedded within modules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96272 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 21:27:20 +00:00
Chris Lattner
ebd024fc4e
remove empty file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96271 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 21:14:50 +00:00
Daniel Dunbar
e44fc85bba
Simplify.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96269 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 21:08:22 +00:00
Bill Wendling
b218b278fe
Remove c++ style comments from c header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96266 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 20:53:17 +00:00
Chris Lattner
cd10d14b4c
revert r96241. It breaks two regression tests, isn't documented,
...
and the testcase needs improvement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96265 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 20:53:01 +00:00
Bill Wendling
cb0b7be886
Renumber Instruction enums in llvm-c.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96264 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 20:50:51 +00:00
Chris Lattner
37914c8e83
fix PR6305 by handling BlockAddress in a helper function
...
called by jump threading.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96263 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 20:47:49 +00:00
Evan Cheng
014bf215c3
Split SelectionDAGISel::IsLegalAndProfitableToFold to
...
IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use.
This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96255 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 19:41:07 +00:00
Chris Lattner
a7445340da
comment fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96248 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 18:55:04 +00:00
David Greene
786da7dec2
Add support for emitting non-temporal stores for DAGs marked
...
non-temporal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96241 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 17:02:56 +00:00
David Greene
1e559443a1
Add non-temporal flags and remove an assumption of default arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96240 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 17:00:31 +00:00
David Greene
db8d989ed5
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96239 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:57:43 +00:00
David Greene
7720155bec
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96238 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:57:13 +00:00
David Greene
54a7aa8429
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96237 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:57:02 +00:00
David Greene
534502d1e9
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96236 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:56:53 +00:00
David Greene
74a6a7990c
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96235 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:56:34 +00:00
David Greene
4d58b64125
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96234 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:56:22 +00:00
David Greene
f6fa186cf9
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96233 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:56:10 +00:00
David Greene
73657df388
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96232 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:55:58 +00:00
David Greene
f749efae8b
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96231 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:55:37 +00:00
David Greene
1b58cab38c
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96230 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:55:24 +00:00
David Greene
0e2236c70c
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96229 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:55:07 +00:00
David Greene
67c9d42f93
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96228 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:53:33 +00:00
David Greene
140a5d6413
Remove an assumption of default arguments. This is in anticipation of a
...
change to SelectionDAG build APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96227 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:49:52 +00:00
David Greene
ba2b297ca5
Add non-temporal flags to MachineMemOperand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96226 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:48:31 +00:00
Duncan Sands
b0bc6c361d
Uniformize the names of type predicates: rather than having isFloatTy and
...
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 16:12:20 +00:00
Oscar Fuentes
f6814754e8
CMake: Fixed syntax in conditional.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96221 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 15:17:05 +00:00
Andrew Lenharth
6ceeba6043
Fix changes from r75027
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96220 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 15:00:44 +00:00
Dan Gohman
50922bbe74
When testing whether a given SCEV depends on a temporary symbolic
...
name, test whether the SCEV itself is that temporary symbolic name,
in addition to checking whether the symbolic name appears as a
possibly-indirect operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96216 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 10:28:37 +00:00
Chris Lattner
da272d1a70
Check in the first big step of rewriting DAGISelEmitter to
...
produce a table based matcher instead of gobs of C++ Code.
Though it's not done yet, the shrinkage seems promising,
the table for the X86 ISel is 75K and still has a lot of
optimization to come (compare to the ~1.5M of .o generated
the old way, much of which will go away).
The code is currently disabled by default (the #if 0 in
DAGISelEmitter.cpp). When enabled it generates a dead
SelectCode2 function in the DAGISel Header which will
eventually replace SelectCode.
There is still a lot of stuff left to do, which are
documented with a trail of FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96215 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 08:04:42 +00:00
Chris Lattner
9f06cb4fe5
give SDValue an operator->, allowing V->isTargetOpcode() and
...
many other natural things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96214 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 07:11:34 +00:00
Chris Lattner
5ac03f1786
don't make insanely large node numbers for no reason,
...
packing somewhat densely is better than not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96213 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 06:39:31 +00:00
Chris Lattner
020bb08026
no need to add the instruction count anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96212 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 06:38:41 +00:00
Mikhail Glushenkov
0b1a39577b
Revert r96130 ("Forward parameter options as '-option=param'").
...
This behaviour must be configurable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96210 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 03:17:06 +00:00
Chris Lattner
17f26b4fd2
enhance raw_svector_ostream::write_impl to work with unbuffered streams,
...
which may call write_impl on things that are not the usual buffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96209 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 02:18:26 +00:00
Chris Lattner
efbdaa6463
make PadToColumn return the stream so you can use:
...
OS.PadToColumn(42) << "foo";
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96208 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 02:17:50 +00:00
Dale Johannesen
3da6e09de5
Ignore DBG_VALUE in a couple more places.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96207 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 01:45:47 +00:00
Dan Gohman
4559855013
When restoring a saved insert location, check to see if the saved
...
insert location has become an "inserted" instruction since the time
it was saved. If so, advance to the first non-"inserted" instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96203 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 00:21:43 +00:00
Chris Lattner
751d5aa1ea
constize
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96199 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14 22:33:49 +00:00
Chris Lattner
4766132036
clean up a bunch of code, move some random predicates
...
on TreePatternNode to be methods on TreePatternNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96197 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-14 22:22:58 +00:00