Devang Patel
78ab9e2c49
Start using DebugInfoFinder.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77621 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:56:46 +00:00
Devang Patel
76dd4e8941
Do not use getNamedValue() to lookup NamedMDNode. NamedMDNode is not a GlobalValue.
...
Thanks Benjamin Kramer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77619 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:46:29 +00:00
Devang Patel
eeae0641bf
Fix MetadataBase::classof().
...
Thanks Benjamin Kramer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77618 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:45:09 +00:00
Daniel Dunbar
0fffbafa96
Twine: Use raw_ostream::write_hex, remove unused itohexstr method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77617 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:30:19 +00:00
Daniel Dunbar
7212f80966
Remove unintended changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77616 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:29:44 +00:00
Devang Patel
98c65173bb
s/DebugInfoEnumerator/DebugInfoFinder/g
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77615 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:25:15 +00:00
Daniel Dunbar
48018e08f0
Add raw_ostream::write_hex
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77614 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:21:23 +00:00
Daniel Dunbar
bd17a295c1
Remove itohexstr, which only had one user.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77613 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:18:54 +00:00
David Goodwin
3e4b22d983
Add missing D* register clobbers for Thumb-2 call.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77611 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 18:01:09 +00:00
Daniel Dunbar
fe09b2098a
Twines: Don't allow implicit conversion from integers, this is too tricky.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77605 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 17:37:43 +00:00
Devang Patel
e802f1c4c3
walk DbgRegionStartInst and DbgRegionEndInst
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77604 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 17:30:23 +00:00
Devang Patel
e8b3e02dce
Fix comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77603 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 17:25:33 +00:00
Dan Gohman
524dab14f4
Minor whitespace tidiness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77602 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 17:04:07 +00:00
Dan Gohman
68a31c2583
Rename GRAD to GR32_AD, to follow the naming convention of other
...
classes. And define its SubRegClassList.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77601 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 17:02:08 +00:00
Chris Lattner
513503961d
add a random codegen deficiency.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77598 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 16:08:58 +00:00
Benjamin Kramer
20cc4b8cd9
fix a unitialized pointer in NamedMDNode (and reenable unittest)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77597 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 15:35:55 +00:00
Sanjiv Gupta
a114baa5bf
Allow targets to define libcall names for mem(cpy,set,move) intrinsics, rather than hardcoding them in DAG lowering.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77586 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 09:12:56 +00:00
Evan Cheng
7216920791
Add a note.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77584 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 08:56:19 +00:00
Evan Cheng
fe0bfe4fa4
I've changed the semantics of MERGE_VALUES a bit. It's now allowed to live until scheduling. It's deleted when the scheduler translate DAG nodes to machine instructions.
...
This is currently used by X86 to handle atomic_load_add when the output of the node is not used. I believe there is a better solution. But I find MERGE_VALUES useful for selecting multi-output node when the dead output can be selected as a IMPLICIT_DEF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77583 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 08:44:08 +00:00
Evan Cheng
37b7387da9
Optimize some common usage patterns of atomic built-ins __sync_add_and_fetch() and __sync_sub_and_fetch.
...
When the return value is not used (i.e. only care about the value in the memory), x86 does not have to use add to implement these. Instead, it can use add, sub, inc, dec instructions with the "lock" prefix.
This is currently implemented using a bit of instruction selection trick. The issue is the target independent pattern produces one output and a chain and we want to map it into one that just output a chain. The current trick is to select it into a merge_values with the first definition being an implicit_def. The proper solution is to add new ISD opcodes for the no-output variant. DAG combiner can then transform the node before it gets to target node selection.
Problem #2 is we are adding a whole bunch of x86 atomic instructions when in fact these instructions are identical to the non-lock versions. We need a way to add target specific information to target nodes and have this information carried over to machine instructions. Asm printer (or JIT) can use this information to add the "lock" prefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77582 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 08:33:02 +00:00
Daniel Dunbar
7f93dc8345
Switch obvious clients to Twine instead of utostr (when they were already using
...
a Twine, e.g., for names).
- I am a little ambivalent about this; we don't want the string conversion of
utostr, but using overload '+' mixed with string and integer arguments is
sketchy. On the other hand, this particular usage is something of an idiom.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 04:20:37 +00:00
Sanjiv Gupta
e409f0a779
Keep track of references to mem(cpy,move,set) and then print only one extern
...
declaration for them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77578 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 04:15:15 +00:00
Daniel Dunbar
0165a2ca89
Twine: Provide [u]int{32,64} conversions via implicit constructors instead of
...
explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77576 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 03:47:15 +00:00
Andreas Bolka
713395950a
Equal SCEVs of a subscript give rise to dependence.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77570 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 02:26:01 +00:00
Daniel Dunbar
bb916fbadd
Disable the NamedMDNodeTest, it is failing everywhere.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77569 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 02:08:27 +00:00
Nate Begeman
55a961f075
Typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77568 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 02:00:06 +00:00
Dan Gohman
a4714e025d
Add a new register class to describe operands that can't be SP,
...
due to x86 encoding restrictions. This is currently off by default
because it may cause code quality regressions. This is for PR4572.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77565 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 01:56:29 +00:00
Dan Gohman
2395f01198
Minor whitespace tidiness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77564 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 01:33:17 +00:00
Devang Patel
e8861b840b
Check null NameMDNode elements.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77559 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 01:02:04 +00:00
Dan Gohman
084d1ba5ad
Eliminate a bunch of redundant tables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77558 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 00:40:42 +00:00
Bob Wilson
cf661e2c56
Lower a 128-bit BUILD_VECTOR with 2 elements to a pair of INSERT_VECTOR_ELTs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77557 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 00:31:25 +00:00
Dan Gohman
7c5f0c5ce9
Use array_endof instead of doing it manually.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77553 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 00:10:18 +00:00
Devang Patel
fa7c4dcef2
Add NamedMDNode test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77550 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 00:03:41 +00:00
Devang Patel
c29d5b378e
print single NamedMDNode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77549 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30 00:02:57 +00:00
Evan Cheng
8770f747a9
tbb / tbh instructions only branch forward, not backwards.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77522 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 23:20:20 +00:00
Evan Cheng
d600522608
Add VFP3 D registers to the DPR register class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77521 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 23:03:41 +00:00
Nicolas Geoffray
1b10d798d7
In TrimAllocationToSize, if a block is below the minimum allocation size,
...
there is no new block added to the free list. Therefore on the next
startFunctionBody call, a new slab must be allocated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77520 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 22:55:02 +00:00
Douglas Gregor
f485b3bbab
Eliminate a few unused-variable warnings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77519 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 22:41:10 +00:00
Devang Patel
aa99314251
Read and write NamedMDNode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 22:34:41 +00:00
Owen Anderson
debcb01b0f
Move types back to the 2.5 API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77516 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 22:17:13 +00:00
Devang Patel
37c4a2d6f1
Print named metadata.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77513 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 22:04:47 +00:00
Daniel Dunbar
473955f439
Fix PR4645 which was fallout from the fix for PR4641.
...
- Call RAUW to delete all instructions (this is a patch from Nick Lewycky).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77512 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 22:00:43 +00:00
Devang Patel
5316bf0252
There is no need to keep name ref in NamedMDNode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77511 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 21:58:56 +00:00
Chris Lattner
2a38688494
inline the global 'getInstrOperandRegClass' function into its callers
...
now that TargetOperandInfo does the heavy lifting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77508 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 21:36:49 +00:00
Evan Cheng
20a2a0aff3
Make sure Thumb2 uses the right call instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77507 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 21:26:42 +00:00
Bill Wendling
409914b773
Forgot to output the base offset.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77505 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 21:19:44 +00:00
Chris Lattner
cb778a8634
1. Introduce a new TargetOperandInfo::getRegClass() helper method
...
and convert code to using it, instead of having lots of things
poke the isLookupPtrRegClass() method directly.
2. Make PointerLikeRegClass contain a 'kind' int, and store it in
the existing regclass field of TargetOperandInfo when the
isLookupPtrRegClass() predicate is set. Make getRegClass pass
this into TargetRegisterInfo::getPointerRegClass(), allowing
targets to have multiple ptr_rc things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77504 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 21:10:12 +00:00
Chris Lattner
a938ac6223
make ptr_rc derive from a new PointerLikeRegClass tblgen class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77503 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 20:43:05 +00:00
Chris Lattner
2cfd52c507
Give getPointerRegClass() a "kind" value so that targets can
...
support multiple different pointer register classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77501 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 20:31:52 +00:00
Evan Cheng
0531d04d00
- Fix an obvious copy and paste error.
...
- Darwin Thumb2 call clobbers r9.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77500 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29 20:10:36 +00:00