Sandeep Patel
65c3c8f323
Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 08:44:58 +00:00
Bob Wilson
86f7cd786e
Avoid calling removeVirtualRegisterKilled which iterates over the operands
...
to find the kill, since we already have the operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80736 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 23:18:46 +00:00
Bob Wilson
326f43812c
Refactor some code into separate functions. No functional changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80733 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 22:51:08 +00:00
Bob Wilson
c08f5fe882
Move use of LV inside condition that guards for null LV.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80731 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 22:19:00 +00:00
Daniel Dunbar
31e2c7b4c1
Remove Offset from ExternalSybmol MachineOperands, this is unused (and at least partly unsupported, in X86 encoding at least).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80726 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 22:06:46 +00:00
Bruno Cardoso Lopes
0bb83860f9
Fix ELF Writter related memory leaks
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80717 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 19:25:52 +00:00
Jim Grosbach
ee793a6c19
reduce size of SmallString to something more reasonable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80710 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 18:55:08 +00:00
Jim Grosbach
c40d9f9bae
Use raw_ostream instead of sstream
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80704 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 18:49:12 +00:00
David Goodwin
1f15228398
Add hidden flags to allow binary search of post-RA scheduling errors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80702 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 18:34:03 +00:00
Jim Grosbach
33668c0f1a
revert inadvertant change from previous commit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80689 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 17:19:13 +00:00
Jim Grosbach
a01d34676f
Simply LSDA lable emission to use a direct special-case output instead of
...
EmitLabel()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80677 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 16:43:35 +00:00
Bob Wilson
71124f698b
Fix pr4843: When an instruction has multiple destination registers that are
...
tied to different source registers, the TwoAddressInstructionPass needs to
be smarter. Change it to check before replacing a source register whether
that source register is tied to a different destination register, and if so,
defer handling it until a subsequent iteration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80654 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 04:18:40 +00:00
Jim Grosbach
3fb2b1ede3
Clean up LSDA name generation and use for SJLJ exception handling. This
...
makes an eggregious hack somewhat more palatable. Bringing the LSDA forward
and making it a GV available for reference would be even better, but is
beyond the scope of what I'm looking to solve at this point.
Objective C++ code could generate function names that broke the previous
scheme. This fixes that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80649 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 01:57:56 +00:00
Devang Patel
82dfc0cd8c
Subprogram is a scope. Derive DISubprogram from DIScope.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80637 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 22:47:13 +00:00
Devang Patel
5e005d814f
Rename DIBlock as DILexicalBlock.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80633 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 22:00:15 +00:00
Bob Wilson
4344979ba9
Use early exit and reduce indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80631 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 21:54:55 +00:00
Bob Wilson
d4034b2825
If the tied registers are already the same, there is no need to change
...
them. Move the code to make that change inside the conditional.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80630 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 21:54:16 +00:00
Caroline Tice
dc8f6049d1
Add flag to mark structs for Apple Block "byref" variables; also add code to
...
modify the type and location debug information for these variables to match the
programmer's expectations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80625 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 21:19:37 +00:00
David Goodwin
a3251db21a
Don't mark a register live at an undef use.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80621 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 20:47:02 +00:00
Devang Patel
6ceea33c5e
Simplify isDerivedType() and other predicate interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80602 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 18:49:10 +00:00
Bill Wendling
049e98d641
Output a hex value, because all of the others are hex.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80601 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 18:26:48 +00:00
Duncan Sands
c69d74a5d4
Revert commit 80428. It completely broke exception
...
handling on x86-32 linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80592 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 16:45:16 +00:00
Jim Grosbach
0bb61c56bc
PR4747
...
Shared landing pads run into trouble with SJLJ, as the dispatch table is
mapped to call sites, and merging the pads will throw that off. There needs
to be a one-to-one mapping of landing pad exception table entries to invoke
call points.
Detecting the shared pad during lowering of SJLJ info insn't sufficient, as
the dispatch function may still need separate destinations to properly
handle phi-nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80530 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 01:35:03 +00:00
Bill Wendling
8ed211406a
Nuke moribund "std::string" version of EOL(..., Encoding).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80466 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-30 00:28:57 +00:00
Bill Wendling
9b35a09e7e
- Add target lowering methods to get the preferred format for the FDE and LSDA
...
encodings.
- Make some of the values emitted by the FDEs dependent upon the pointer
size. This is in line with how GCC does things. And it has the benefit of
working for Darwin in 64-bit mode now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80428 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-29 12:20:54 +00:00
Bill Wendling
b5abecded7
Add a form of EOL which emits the text version of a DWARF format encoding. This
...
doesn't handle all values of the formatting. Those can be added as needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80427 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-29 12:17:53 +00:00
Eric Christopher
6fefcebc4f
Make the augmentation size and next set of bytes agree on size,
...
and make the reference pointer size as it should be.
Fixes an abort on a testcase derived from libunwind's personality
test in 64-bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80414 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-29 01:12:46 +00:00
David Goodwin
7886cd85b2
Another stab at fixing up register kill flags after post-RA scheduling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80410 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-29 00:11:13 +00:00
Devang Patel
e4b275610a
Reapply 79977.
...
Use MDNodes to encode debug info in llvm IR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 23:24:31 +00:00
Eric Christopher
dbfcdb9763
Nuke trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80401 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 22:33:43 +00:00
Devang Patel
a1ba269a27
Closure is a very generic name. Use AppleBlock instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80307 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 23:51:51 +00:00
Dan Gohman
a01a80fa6c
Adjust the MachineBasicBlock verifier rules to be more
...
tolerant of blocks that end with "unreachable".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80270 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 18:14:26 +00:00
Bill Wendling
639217cb6a
Revert accidental commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80198 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 03:32:50 +00:00
Bill Wendling
fffb7266fe
--- Reverse-merging r80147 into '.':
...
A include/llvm/ADT/iterator.cmake
U autoconf/configure.ac
--- Reverse-merging r80161 into '.':
U cmake/config-ix.cmake
--- Reverse-merging r80171 into '.':
U Makefile
--- Reverse-merging r80173 into '.':
U configure
U include/llvm/Config/config.h.in
--- Reverse-merging r80180 into '.':
A include/llvm/ADT/iterator.h.in
Despite common miscomceptions, iterator.h is alive and well. It broke the build
bots for several hours. And yet no one bothered to look at them.
Gabor and Doug, please review your changes and make sure that they actually
build before resubmitting them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80197 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 03:29:26 +00:00
Dan Gohman
27920594b9
Add some checks for MachineCFG consistency. Use AnalyzeBranch and
...
do extra checking when it succeeds, as those are cases where
CodeGen will be doing particularly interesting CFG modifications.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80196 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 02:43:49 +00:00
Eric Christopher
5e365e23f1
Rework getPersonalityIndex slightly - 0 is now a valid and not-NULL
...
personality function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80153 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 21:44:57 +00:00
Eric Christopher
d44fff7849
If we're emitting additional CIEs due to personality functions
...
don't emit the default one. Explicitly check for the NULL
CIE later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80146 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 21:30:49 +00:00
Eric Christopher
cf29697266
Nuke trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80145 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 21:27:09 +00:00
Anton Korobeynikov
62c77d33b1
Add extload expansion for f128
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80116 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 17:39:40 +00:00
Dan Gohman
e29fea4434
-fast is now -O0. -fast-isel is no longer experimental.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80104 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 15:57:57 +00:00
Devang Patel
8245988835
Revert 79977. It causes llvm-gcc bootstrap failures on some platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80073 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 05:01:18 +00:00
Devang Patel
8af76bdb74
Add isClosure() predicate. This is used to add DW_AT_APPLE_block attribute.
...
Patch by Caroline Tice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80061 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 00:39:50 +00:00
Owen Anderson
d8110fb726
Get rid of this horrible "benign race" by exploiting ManagedStatic to initialize
...
the array on its first access.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80040 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 22:27:22 +00:00
David Goodwin
88a589c4b3
Fixup register kills after scheduling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80002 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 17:03:05 +00:00
Bill Wendling
7ccda0f2aa
- Rename EmitCommonInformationEntry to EmitCIE.
...
- Rename EmitFunctionDescriptionEntry to EmitFDE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79981 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 08:08:33 +00:00
Devang Patel
2a610c7387
Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
...
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79977 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 05:24:07 +00:00
Bill Wendling
4bda11fbda
- Emit new line after each FDE.
...
- Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79971 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 02:32:05 +00:00
Bill Wendling
a6f91da8b2
Rename functions to something more descriptive. At the very least mention the
...
CIE and FDE in their names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 02:27:42 +00:00
Chris Lattner
23132b188b
prune the #includes in raw_ostream.h by moving a
...
member out of line. ftostr is not particularly speedy,
so that method is presumably not perf sensitive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79885 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24 03:52:50 +00:00
Chris Lattner
dbe89cd2f0
remove the last uses of Config/alloca.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79873 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 22:57:38 +00:00
Chris Lattner
74382b7c69
Prune #includes from llvm/Linker.h and llvm/System/Path.h,
...
forcing them down into various .cpp files.
This change also:
1. Renames TimeValue::toString() and Path::toString() to ::str()
for similarity with the STL.
2. Removes all stream insertion support for sys::Path, forcing
clients to call .str().
3. Removes a use of Config/alloca.h from bugpoint, using smallvector
instead.
4. Weans llvm-db off <iostream>
sys::Path really needs to be gutted, but I don't have the desire to
do it at this point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79869 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 22:45:37 +00:00
Jim Grosbach
a235d13217
SJLJ pass needs to punt if there's no personality function available.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79858 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 18:13:48 +00:00
Jakob Stoklund Olesen
46ff969ca6
Fix PR4753.
...
When undoing a reuse in ReuseInfo::GetRegForReload, check if it was only a
sub-register being used. The MachineOperand::getSubReg() method is only valid
for virtual registers, so we have to recover the sub-register index manually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79855 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 13:01:45 +00:00
Benjamin Kramer
cfa6ec92e6
Kill off more cerr/cout uses and prune includes a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79852 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 11:37:21 +00:00
Daniel Dunbar
43ed267db3
Fix some refactos for iostream changes (in -Asserts mode).
...
- The world needs better C++ refactoring tools, can I get an Amen!?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79843 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 08:50:52 +00:00
Chris Lattner
d9ea85ab01
remove some uses of llvm/Support/Streams.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79842 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 08:43:55 +00:00
Chris Lattner
103289e938
convert LoopInfo.h and GraphWriter.h to use raw_ostream
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79836 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 07:19:13 +00:00
Chris Lattner
4437ae213d
eliminate uses of cerr()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79834 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 07:05:07 +00:00
Chris Lattner
bbbfa99d3d
remove a few DOUTs here and there.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79832 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 06:35:02 +00:00
Chris Lattner
45cfe545ec
Change Pass::print to take a raw ostream instead of std::ostream,
...
update all code that this affects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79830 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 06:03:38 +00:00
Chris Lattner
791102fb11
eliminate the std::ostream form of WriteAsOperand and update clients.
...
This also updates dominator related stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79825 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 05:17:37 +00:00
Chris Lattner
bdff548e4d
eliminate the "Value" printing methods that print to a std::ostream.
...
This required converting a bunch of stuff off DOUT and other cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79819 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 04:37:46 +00:00
Chris Lattner
c02497f5ba
shoot a few more std::ostream print methods in the head.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79814 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 03:47:42 +00:00
Chris Lattner
705e07f578
remove various std::ostream version of printing methods from
...
MachineInstr and MachineOperand. This required eliminating a
bunch of stuff that was using DOUT, I hope that bill doesn't
mind me stealing his fun. ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79813 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 03:41:05 +00:00
Chris Lattner
6456d3868d
remove some DOUTs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79812 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 03:20:44 +00:00
Chris Lattner
cf143a4d91
remove std::ostream versions of printing stuff for MBB and MF,
...
upgrading a few things to use raw_ostream
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79811 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 03:13:20 +00:00
Chris Lattner
17e9edc4a7
Change raw_fd_ostream to take flags as an optional bitmask
...
instead of as two bools. Use this to add a F_Append flag
which has the obvious behavior.
Other unrelated changes conflated into this patch:
1. REmove EH stuff from llvm-dis and llvm-as, the try blocks
are dead.
2. Simplify the filename inference code in llvm-as/llvm-dis,
because raw_fd_ostream does the right thing with '-'.
3. Switch machine verifier to use raw_ostream instead of ostream
(Which is the thing that needed append in the first place).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79807 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 02:51:22 +00:00
Chris Lattner
d74c556e9a
convert some stuff to work on raw_ostreams instead of std::ostream.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79803 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 01:12:47 +00:00
Chris Lattner
19ef669689
fix a gone file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79802 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 01:11:21 +00:00
Chris Lattner
372fefe8d2
remove some dead print method variants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79801 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 01:03:30 +00:00
Chris Lattner
b01acfae5b
convert the DIE printing stuff to use raw_ostream instead of std::ostream.
...
Tweak #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79800 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 01:01:17 +00:00
Chris Lattner
623dd141b4
random code cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 00:51:47 +00:00
Chris Lattner
c281de1d84
remove some random indentation stuff, yay for efficiency.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79797 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 00:51:00 +00:00
Chris Lattner
2d8e3d20be
remove dead PrefixPrinter class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79796 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 00:47:04 +00:00
Chris Lattner
77942d4ee4
remove a dead class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79795 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 00:42:42 +00:00
Chris Lattner
6371ed5e2b
random cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79794 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 00:35:30 +00:00
Eli Friedman
5aba5c0e88
Add check for completeness. Note that this doesn't actually have any
...
effect with the way the current code is structured.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79792 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 00:14:19 +00:00
Chris Lattner
33adcfb4d2
rename TAI -> MAI, being careful not to make MAILJMP instructions :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79777 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 21:43:10 +00:00
Bill Wendling
c75e7d2a06
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79766 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:54:03 +00:00
Bill Wendling
70357db30a
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79765 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:52:46 +00:00
Chris Lattner
af76e592c7
Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79763 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:48:53 +00:00
Bill Wendling
9c52affd37
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79762 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:46:59 +00:00
Bill Wendling
960bb85b21
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79760 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:41:06 +00:00
Bill Wendling
cbac788324
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79759 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:40:21 +00:00
Bill Wendling
fbb594f351
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:38:09 +00:00
Bill Wendling
c3115a02c5
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79756 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:30:53 +00:00
Bill Wendling
1e973aae79
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:26:23 +00:00
Bill Wendling
b7a89928f4
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79754 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:25:44 +00:00
Bill Wendling
0d6b1b1248
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79753 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:23:49 +00:00
Bill Wendling
8e6179fb13
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79752 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:18:03 +00:00
Bill Wendling
44ff7949c7
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79751 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:11:17 +00:00
Bill Wendling
fb98a43b31
Normalize how the 'namespace llvm {' is used in this file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:08:44 +00:00
Bill Wendling
b22d8df162
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79749 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:07:03 +00:00
Bill Wendling
9311a22830
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79748 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:04:03 +00:00
Bill Wendling
3403bcd8f9
Convert DOUT to DEBUG(errs()...).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79747 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 20:03:00 +00:00
Devang Patel
24f20e0832
Record variable debug info at ISel time directly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79742 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 17:12:53 +00:00
Owen Anderson
02b10347bb
Reapply r79708 with the appropriate fix for the case that still requires locking.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79731 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 06:32:36 +00:00
Chris Lattner
895a55e66d
revert r79708 + r79711
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79720 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 04:07:34 +00:00
Eric Christopher
8dde7c0ff1
Actually remove unused static. Previous commit removed trailing
...
whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79711 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 00:41:47 +00:00
Eric Christopher
4d7c18c49b
Remove unused static.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79710 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 00:40:45 +00:00
Owen Anderson
0b7401d3cd
Ease contention on this lock by noticing that all writes to the VTs array will
...
be of (dynamically) constant values, so races on it are immaterial. We just need
to ensure that at least one write has completed before return the pointer into it.
With this change, parllc exhibits essentially no overhead on 403.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79708 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 00:29:12 +00:00
Bill Wendling
636e258a53
Fix typo. Should check both values of RangeUse for 0. Patch by Marius Wachtler.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79649 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 18:16:06 +00:00
Bill Wendling
a583c55864
Attempt to comment this code more.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79567 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 22:02:24 +00:00
Daniel Dunbar
bc84ad95b7
Suppress build warning in -Asserts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79564 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 20:01:34 +00:00
Jim Grosbach
8fc3b6903a
Check for shared landing pads when assigning call site values. Invokes which
...
share a landing pad should also use the same call site value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79501 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 01:03:48 +00:00
David Greene
5f3aeac9a7
Add missing forward declaration.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79481 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:19:44 +00:00
David Greene
098612b0e8
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79480 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:16:11 +00:00
David Greene
43c76fbba2
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79479 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:08:26 +00:00
David Greene
2a711e36da
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79478 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:05:21 +00:00
David Greene
0d036d2e81
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79476 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:02:07 +00:00
David Greene
eea1f4cdb7
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79475 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 21:59:18 +00:00
David Greene
fc4da0cea8
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79474 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 21:55:33 +00:00
David Greene
b2c66fc322
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79473 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 21:52:55 +00:00
Daniel Dunbar
dddfd34e32
Switch to SmallString::str from SmallString::c_str, and remove
...
SmallString::c_str.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79456 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 20:07:03 +00:00
Dan Gohman
6a402dc952
Add an x86 peep that narrows TEST instructions to forms that use
...
a smaller encoding. These kinds of patterns are very frequent in
sqlite3, for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79439 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 18:16:17 +00:00
David Goodwin
dc4bdcdef1
Use the schedule itinerary operand use/def cycle information to adjust dependence edge latency for post-RA scheduling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79425 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 16:08:58 +00:00
Eli Friedman
d68eea2b6d
PR4737: Fix a nasty bug in load narrowing with non-power-of-two types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79415 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 08:46:10 +00:00
Chris Lattner
663c2d2580
switch asmprinter to emit alignments through OutStreamer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 06:12:02 +00:00
Chris Lattner
6c2f9e14fd
eliminate AsmPrinter::SwitchToSection and just have clients
...
talk to the MCStreamer directly instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79405 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 05:49:37 +00:00
Lang Hames
8481e3b368
Added an option to have the PBQP allocator attempt coalescing during allocation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79397 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 01:36:14 +00:00
Dan Gohman
2c9489d6e9
Be tidy and use a break to exit from a switch block rather than
...
just falling through the end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79383 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 23:52:48 +00:00
Dan Gohman
db8dc2b9fa
Legalize the shift amount operand of SRL_PARTS, SHL_PARTS, and
...
SRA_PARTS, as is done for SRL, SHL, and SRA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79380 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 23:36:17 +00:00
Lang Hames
233fd9cea0
Changes DOUT references in the PBQP allocator to use DEBUG(errs() ...)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79378 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 23:34:50 +00:00
Jakob Stoklund Olesen
c0823fe7c6
Simplify RegScavenger::FindUnusedReg.
...
- Drop the Candidates argument and fix all callers. Now that RegScavenger
tracks available registers accurately, there is no need to restict the
search.
- Make sure that no aliases of the found register are in use. This was a potential bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79369 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 21:14:54 +00:00
David Greene
fe37ab335b
Make various changes suggested by Chris.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79358 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 19:22:55 +00:00
Chris Lattner
35c3531754
fix COFF targets (mingw/cygwin) to provide ehframe and LSDA sections
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 16:56:17 +00:00
Dan Gohman
da65822cfc
Make tail merging handle blocks with repeated predecessors correctly, and
...
remove RemoveDuplicateSuccessor, as it is no longer necessary, and because
it breaks assumptions made in
MachineBasicBlock::isOnlyReachableByFallthrough.
Convert test/CodeGen/X86/omit-label.ll to FileCheck and add a testcase
for PR4732.
test/CodeGen/Thumb2/thumb2-ifcvt2.ll sees a diff with this commit due to
it being bugpoint-reduced to the point where it doesn't matter what the
condition for the branch is.
Add some more interesting code to
test/CodeGen/X86/2009-08-06-branchfolder-crash.ll, which is the testcase
that originally motivated the RemoveDuplicateSuccessor code, to help
verify that the original problem isn't being re-broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79338 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 15:18:18 +00:00
Chris Lattner
dabf07c70a
Make AsmStreamer maintain a notion of the current section, pushing it up from the
...
MCAsmStreamer. Based on this, eliminate the current section from AsmPrinter.
While I'm at it, clean up the last of the horrible "switch to null section" stuff
and add an assert. This change is in preparation for completely eliminating
asmprinter::switchtosection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79324 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 06:15:16 +00:00
Chris Lattner
6a66e585b8
add a horrible hack to the dwarf printer. It looks like mingw is not specifying
...
an EHFrame section, so we just emit ehframe data into a random section.
This is clearly bad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79323 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 06:13:03 +00:00
Chris Lattner
1f50fc736e
fix another bozo bug
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79313 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 04:34:36 +00:00
Chris Lattner
b49a30c109
fix accidentally inverted conditional and add comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79312 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 04:33:15 +00:00
Chris Lattner
a006d4e60d
turn this conditional into something humans might actually
...
be able to understand ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79311 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 04:30:35 +00:00
Jim Grosbach
606f3d696f
cleanups per review. Mostly cosmetic, plus use SmallVector in place of std::vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79287 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 21:40:03 +00:00
Jim Grosbach
2962664227
Remove a bit more cruft from the sjlj moving to a backend pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79272 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 20:25:04 +00:00
Benjamin Kramer
ae68a19ef9
Update CMakeLists.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79264 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 18:47:11 +00:00
Daniel Dunbar
5d17eddb0c
Fix build warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79262 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 18:41:42 +00:00
Jim Grosbach
8b818d7e98
Move the sjlj exception handling conversions to a back-end pass where they
...
more properly belong. This allows removing the front-end conditionalized
SJLJ code, and cleans up the generated IR considerably. All of the
infrastructure code (calling _Unwind_SjLj_Register/Unregister, etc) is
added by the SjLjEHPrepare pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79250 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 16:41:22 +00:00
David Goodwin
fac8541dd4
Extend the instruction itinerary model to include the ability to indicate the def and use cycle for each operand. This additional information is optional, so existing itineraries do not need to be changed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79247 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 16:02:57 +00:00
Chris Lattner
8f4b1ec02b
the MinPad argument to PadToColumn only really makes sense to be 1,
...
just remove the argument and replace it with 1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79246 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 15:48:08 +00:00
Chris Lattner
975780bb59
change AsmPrinter to switch sections using AsmStreamer instead of
...
doing it directly. This requires const'izing a bunch of stuff that
took sections, but this seems like the right semantic thing to do:
emitting a label to a section shouldn't mutate the MCSection object
itself, for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79227 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 05:49:08 +00:00
Chris Lattner
f3ce009fcb
give MCAsmStreamer a TargetAsmInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79222 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 04:23:44 +00:00
Jakob Stoklund Olesen
66a39699fb
Replace RegScavenger::DistanceMap with a simpler local algorithm.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79195 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 17:41:39 +00:00
Jakob Stoklund Olesen
e689ce626c
Clean up the public interface of RegScavenger.
...
Remove unused methods and make others private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79194 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 17:41:20 +00:00
Jakob Stoklund Olesen
f7e8af925c
Be more clever about regclasses in ScheduleDAGSDNodes::EmitCopyFromReg.
...
If two uses of a CopyFromReg want different regclasses, first try a common
sub-class, then fall back on the copy emitted in AddRegisterOperand. There is
no need for an assert here. The cross-class joiner usually cleans up nicely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79193 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 17:40:59 +00:00
Evan Cheng
8a9d5f96a5
Needs to check whether unaligned load / store of i64 is legal here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79150 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 23:41:42 +00:00
Bill Wendling
eb75364020
Remove <iostream>.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79146 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 22:28:08 +00:00
Benjamin Kramer
bc037cfcde
Unbreak build. Evan, please make sure my changes are correct.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79133 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 20:46:16 +00:00
Jakob Stoklund Olesen
16b794d25a
Refine EarlyClobber assert in register scavenger.
...
It is legal for an inline asm operand to use an earlyclobber register if the
use operand is tied to the earlyclobber operand. The issue is discussed here:
http://gcc.gnu.org/ml/gcc/1999-04n/msg00431.html
We should perhaps let only the machine code verifier worry about these finer
details. EarlyClobber operands are not really interesting to the scavenger.
This fixes PR4528 for the third time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79122 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 18:16:58 +00:00
Jakob Stoklund Olesen
d62c9a697b
Don't setCalleeSavedInfoValid() until spills are interted.
...
In a naked function, the flag is never set and getPristineRegs() returns an
empty list. That means naked functions are able to clobber callee saved
registers, but that is the whole point of naked functions.
This fixes PR4716.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79096 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 13:10:46 +00:00
Jakob Stoklund Olesen
4af85b2328
Allow double defs in the machine code verifier after the addPreRegAlloc passes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79095 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 13:10:15 +00:00
Jakob Stoklund Olesen
7a1e872564
Update LocalRewriter::DistanceMap when inserting stack loads.
...
In the included test case, a stack load was not included in DistanceMap. That
caused TransferDeadness to ignore the instruction, leading to a scavenger
assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79090 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 11:03:03 +00:00
Evan Cheng
e96507c731
80 col violations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79087 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 08:38:52 +00:00
Dan Gohman
0d24bfbf92
Simplify this code to not depend as much on CurMBB.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79068 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15 02:06:22 +00:00
Devang Patel
6325a5305e
Do not completely skip subrange info for a zero sized array.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79044 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 20:59:16 +00:00
Anton Korobeynikov
72977a45a8
Allow targets to specify their choice of calling conventions per
...
libcall. Take advantage of this in the ARM backend to rectify broken
choice of CC when hard float is in effect. PIC16 may want to see if
it could be of use in MakePIC16Libcall, which works unchanged.
Patch by Sandeep!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79033 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 20:10:52 +00:00
Bruno Cardoso Lopes
abd7514a68
*try* to use a better name to describe how common symbols are marked on the elf object file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79029 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 19:45:38 +00:00
Daniel Dunbar
575327b77e
Add virtual printMCInst method to AsmPrinter, as a quick way to expose the API
...
to print one instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78985 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 03:43:57 +00:00
Evan Cheng
7cefd80bd5
Indentation change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78978 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14 01:56:37 +00:00
Daniel Dunbar
7894578470
TargetRegistry: Change AsmPrinter constructor to be typed as returning an
...
AsmPrinter instance (instead of just a FunctionPass)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78962 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 23:48:47 +00:00
Owen Anderson
0e275dc538
Actually privatize a IntegerTypes, and fix a few bugs exposed by this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78955 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 23:27:32 +00:00
Owen Anderson
1d0be15f89
Push LLVMContexts through the IntegerType APIs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 21:58:54 +00:00
Bruno Cardoso Lopes
d163e8b14c
Remove hack used to strip unwanted chars from section name
...
Use MCSectionELF methods as much as possible, removing some
ELFWriter methods which are now unused
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78940 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 21:25:27 +00:00
Daniel Dunbar
67d894ea64
TargetRegistry: Reorganize AsmPrinter construction so that clients pass in the
...
TargetAsmInfo. This eliminates a dependency on TargetMachine.h from
TargetRegistry.h, which technically was a layering violation.
- Clients probably can only sensibly pass in the same TargetAsmInfo as the
TargetMachine has, but there are only limited clients of this API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78928 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 19:38:51 +00:00
Jakob Stoklund Olesen
06789e23d1
Track pristine registers as if they were live-in in the register scavenger.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78913 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 16:20:04 +00:00
Jakob Stoklund Olesen
a6b677d209
Use pristine register info in machine code verifier.
...
So far these registers are simply tracked as if they were live-in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78912 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 16:19:51 +00:00
Jakob Stoklund Olesen
4a0f08c5fc
Add MachineFrameInfo::getPristineRegisters(MBB) method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78911 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 16:19:33 +00:00
David Goodwin
710461688b
Add callback to allow target to adjust latency of schedule dependency edge.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78910 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 16:05:04 +00:00
Bruno Cardoso Lopes
b808588a3a
Change MCSectionELF to represent a section semantically instead of
...
syntactically as a string, very similiar to what Chris did with MachO.
The parsing support and validation is not introduced yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78890 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 05:07:35 +00:00
Dan Gohman
cf20ac4fd1
Various AsmWriter output cleanups. Use WriteAsOperand instead of
...
PrintUnmangledNameSafely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78878 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13 01:36:44 +00:00
David Goodwin
2ffb0ce7dc
Fix counting of Post-RA scheduling stalls. Improve debug output.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78843 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 21:47:46 +00:00
Lang Hames
f7c553e993
Added RegisterCoalescer to required passes for PBQP.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78840 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 21:04:53 +00:00
Dan Gohman
46d505647d
Use WriteAsOperand to print BasicBlock names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78838 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 20:56:56 +00:00
Dan Gohman
e45da0dce0
Fix a few more places to use PadToColumn instead of tabs. And fix
...
the basic block label printing to check whether a block has a name
before printing a comment character and whitespace for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78830 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 18:47:05 +00:00
Dan Gohman
a12e9d751b
Use PadToColumn instead of tabs for aligning comments. Fix one place
...
that emitted unnecessary whitespace outside of VerboseAsm mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78828 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 18:32:22 +00:00
David Goodwin
1a8f36e3ce
Enhance the InstrStage object to enable the specification of an Itinerary with overlapping stages. The default is to maintain the current behavior that the "next" stage immediately follows the previous one.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78827 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 18:31:53 +00:00
Jim Grosbach
bff392384d
Add catch block handling to SjLj exception handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78817 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 17:38:44 +00:00
Chris Lattner
a7ac47cee1
Change TargetAsmInfo to be constructed via TargetRegistry from a Target+Triple
...
pair instead of from a virtual method on TargetMachine. This cuts the final
ties of TargetAsmInfo to TargetMachine, meaning that MC can now use
TargetAsmInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78802 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 07:22:17 +00:00
Dan Gohman
da2775767b
This logic was accidentally inverted in r78767.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 01:44:20 +00:00
Dan Gohman
26255adcaa
Factor out the code for finding an available register for use
...
in breaking an anti-dependence into a separate function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78767 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 01:33:27 +00:00
Owen Anderson
23b9b19b1a
Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78759 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12 00:36:31 +00:00
Chris Lattner
e2b060161c
Change the asmprinter to print the comment character before the
...
"inlineasmstart/end" strings so that the contents of the directive
are separate from the comment character. This lets elf targets
get #APP/#NOAPP for free even if they don't use "#" as the comment
character. This also allows hoisting the darwin stuff up to the
shared TAI class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78737 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 22:39:40 +00:00
David Goodwin
546952fd60
Allow a zero cycle stage to reserve/require a FU without advancing the cycle counter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78736 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 22:38:43 +00:00
Owen Anderson
766b5efd99
Fix warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78725 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 21:59:30 +00:00
Owen Anderson
825b72b057
Split EVT into MVT and EVT, the former representing _just_ a primitive type, while
...
the latter is capable of representing either a primitive or an extended type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78713 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 20:47:22 +00:00
Chris Lattner
b3ac6e40d9
"TAI::JumpTableDirective" is always null for current arm targets, simplify
...
the code based on this and make it fall through better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78708 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 20:29:57 +00:00
David Goodwin
7cd0118c36
Use DEBUG macro for debug output.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78694 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 17:56:42 +00:00
David Goodwin
c93d8373c9
Add some debug output.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78687 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 17:35:23 +00:00
Dan Gohman
ffef8acc3e
Tidy #includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78677 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 16:02:12 +00:00
Dan Gohman
00b0a243bd
Remove unnecessary throw() specifications; LLVM doesn't use exceptions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78667 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 15:35:57 +00:00
Dan Gohman
1b2d0b8397
Remove unnecessary casts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78664 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 15:15:10 +00:00
Dan Gohman
d443ee6884
Add const qualifiers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78663 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 15:13:43 +00:00
Jakob Stoklund Olesen
8c54a62061
Rebuild RegScavenger::DistanceMap each time it is needed.
...
The register scavenger maintains a DistanceMap that maps MI pointers to their
distance from the top of the current MBB. The DistanceMap is built
incrementally in forward() and in bulk in findFirstUse(). It is used by
scavengeRegister() to determine which candidate register has the longest
unused interval.
Unfortunately the DistanceMap contents can become outdated. The first time
scavengeRegister() is called, the DistanceMap is filled to cover the MBB. If
then instructions are inserted in the MBB (as they always are following
scavengeRegister()), the recorded distances are too short. This causes bad
behaviour in the included test case where a register use /after/ the current
position is ignored because findFirstUse() thinks is is /before/ the current
position. A "using an undefined register" assertion follows promptly.
The fix is to build a fresh DistanceMap at the top of scavengeRegister(), and
discard it after use. This means that DistanceMap is no longer needed as a
RegScavenger member variable, and forward() doesn't need to update it.
The fix then discloses issue number two in the same test case: The candidate
search in scavengeRegister() finds a CSR that has been saved in the prologue,
but is currently unused. It would be both inefficient and wrong to spill such
a register in the emergency spill slot. In the present case, the emergency
slot restore is placed immediately before the normal epilogue restore, leading
to a "Redefining a live register" assertion.
Fix number two: When scavengerRegister() stumbles upon an unused register that
is overwritten later in the MBB, return that register early. It is important
to verify that the register is defined later in the MBB, otherwise it might be
an unspilled CSR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78650 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 06:25:12 +00:00
Daniel Dunbar
d4d415a1e7
Fix a -Asserts warning.
...
- Since the function is never called in NDEBUG mode, just dropped the DEBUG()
uses here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78649 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 06:22:47 +00:00
David Goodwin
3a5f0d444c
Replace DOUT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78634 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 01:44:26 +00:00
Jim Grosbach
1b747ad8a0
SjLj based exception handling unwinding support. This patch is nasty, brutish
...
and short. Well, it's kinda short. Definitely nasty and brutish.
The front-end generates the register/unregister calls into the SjLj runtime,
call-site indices and landing pad dispatch. The back end fills in the LSDA
with the call-site information provided by the front end. Catch blocks are
not yet implemented.
Built on Darwin and verified no llvm-core "make check" regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11 00:09:57 +00:00
Lang Hames
52c1afcaea
Modified VNInfo. The "copy" member is now a union which holds the copy for a register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78620 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-10 23:43:28 +00:00
Dan Gohman
00edf39b34
Fix a bug in the DAGCombiner's handling of multiple linked
...
MERGE_VALUES nodes. Replacing the result values with the
operands in one MERGE_VALUES node may cause another
MERGE_VALUES node be CSE'd with the first one, and bring
its uses along, so that the first one isn't dead, as this
code expects. Fix this by iterating until the node is
really dead. This fixes PR4699.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78619 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-10 23:43:19 +00:00
Dan Gohman
a407ca16c2
Fix a bug where DAGCombine was producing an illegal ConstantFP
...
node after legalize, and remove the workaround code from the
ARM backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78615 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-10 23:15:10 +00:00
Owen Anderson
e50ed30282
Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-10 22:56:29 +00:00
Owen Anderson
4600d179fd
Remove a bunch of debugging code that was slowing PBQP down by 25% or so.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78601 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-10 21:49:45 +00:00