1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
Commit Graph

8159 Commits

Author SHA1 Message Date
Devang Patel
7377e7aa89 Enable scalar replacement of AllocaInst whose one of the user is dbg info.
llvm-svn: 64207
2009-02-10 07:00:59 +00:00
Gabor Greif
f47945d757 incorporate review feedback
llvm-svn: 64158
2009-02-09 20:27:45 +00:00
Mikhail Glushenkov
bcf9e92ecf 80-column violations.
llvm-svn: 64147
2009-02-09 17:11:05 +00:00
Gabor Greif
5de6cc843a make sure that BranchInst::getSuccessor() does not assert in cast<>
even if the underlying operand is NULL. This may happen in debugging context
within opt with partial loop unrolling (see test/Transforms/LoopUnroll/partial.ll).
After this fix I can resubmit the (backed out) r63459:
* lib/VMCore/AsmWriter.cpp: use precise accessors.

llvm-svn: 64142
2009-02-09 15:45:06 +00:00
Bill Wendling
a03453cace These function return 'void'. Don't have 'return' return anything.
llvm-svn: 64136
2009-02-09 12:31:26 +00:00
Evan Cheng
9dc1507838 Turns out AnalyzeBranch can modify the mbb being analyzed. This is a nasty
suprise to some callers, e.g. register coalescer. For now, add an parameter
that tells AnalyzeBranch whether it's safe to modify the mbb. A better
solution is out there, but I don't have time to deal with it right now.

llvm-svn: 64124
2009-02-09 07:14:22 +00:00
Mikhail Glushenkov
ed5cc8a9cf 80-column violation.
llvm-svn: 64102
2009-02-08 22:48:07 +00:00
Mikhail Glushenkov
d9f64e601f Add a Sleep() function.
llvm-svn: 64101
2009-02-08 22:47:39 +00:00
Evan Cheng
a7287a61fb Fix PR3486. Fix a bug in code that manually patch physical register live interval after its sub-register is coalesced with a virtual register.
llvm-svn: 64082
2009-02-08 11:04:35 +00:00
Evan Cheng
b5792305b3 Strengthen the previous check.
llvm-svn: 64076
2009-02-08 08:24:28 +00:00
Evan Cheng
7d46312873 (no commit message)
llvm-svn: 64073
2009-02-08 07:48:37 +00:00
Dan Gohman
4105a38248 Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowing
ScheduleDAG's TLI member to use const.

llvm-svn: 64018
2009-02-07 16:15:20 +00:00
Dan Gohman
154fb54e7f Change several SmallPtrSetImpl members from public to protected,
to make the encapsulation more clear.

llvm-svn: 64017
2009-02-07 16:12:23 +00:00
Dan Gohman
3dcfaa7acc Simplify some code by using blocks_begin(), blocks_end(), and
the iterator typedefs instead of handling the std::vector
directly.

llvm-svn: 64016
2009-02-07 16:10:35 +00:00
Nick Lewycky
f273659759 Add an API for strings with possible NULLs in the middle. Refactor the other
two AddString methods to use it.

llvm-svn: 64005
2009-02-07 04:57:08 +00:00
Dale Johannesen
4fc8a5c0b5 Make SDNode constructors take a DebugLoc always.
Adjust derived classes to pass UnknownLoc where
a DebugLoc does not make sense.  Pick one of
DebugLoc and non-DebugLoc variants to survive
for all such classes.

llvm-svn: 64000
2009-02-07 02:15:05 +00:00
Dale Johannesen
ddff168e76 Deleted one line too many. oops.
llvm-svn: 63996
2009-02-07 01:34:19 +00:00
Dale Johannesen
71d758eead Remove now-unused constructors.
llvm-svn: 63995
2009-02-07 01:27:09 +00:00
Dale Johannesen
a259483aae Get rid of the last non-DebugLoc versions of getNode!
Many targets build placeholder nodes for special operands, e.g.
GlobalBaseReg on X86 and PPC for the PIC base.  There's no
sensible way to associate debug info with these.  I've left
them built with getNode calls with explicit DebugLoc::getUnknownLoc operands. 
I'm not too happy about this but don't see a good improvement;
I considered adding a getPseudoOperand or something, but it
seems to me that'll just make it harder to read.

llvm-svn: 63992
2009-02-07 00:55:49 +00:00
Bill Wendling
3625a6c8db Constify operators.
llvm-svn: 63979
2009-02-06 23:17:54 +00:00
Dale Johannesen
1580ab6b7f Remove more non-DebugLoc getNode variants. Use
getCALLSEQ_{END,START} to permit passing no DebugLoc
there.  UNDEF doesn't logically have DebugLoc; add
getUNDEF to encapsulate this.

llvm-svn: 63978
2009-02-06 23:05:02 +00:00
Dale Johannesen
c405486235 Remove more non-DebugLoc versions of getNode.
llvm-svn: 63969
2009-02-06 21:50:26 +00:00
Bill Wendling
06176b1596 Add comparison operators to DebugLoc.
llvm-svn: 63966
2009-02-06 21:34:12 +00:00
Dan Gohman
9296e654cf Make Mutex's constructor explicit, and tidy up whitespace.
llvm-svn: 63963
2009-02-06 21:17:03 +00:00
Ted Kremenek
fa7348b283 Deallocate() methods now take a 'const void*' instead of a 'void *', matching observed behavior with how 'delete[]' can be used.
llvm-svn: 63956
2009-02-06 19:34:14 +00:00
Dale Johannesen
7099fa18a4 Eliminate remaining non-DebugLoc version of getTargetNode.
llvm-svn: 63951
2009-02-06 19:16:40 +00:00
Dan Gohman
c097f9628e Rename SelectionDAGISel::Schedule to
SelectionDAGISel::CreateScheduler, and make it just create the
scheduler. Leave running the scheduler to the higher-level code.
This makes the higher-level code a little more explicit and
easier to follow, and will help enable some future refactoring.

llvm-svn: 63944
2009-02-06 18:26:51 +00:00
Evan Cheng
4ff40adb90 We don't really need the abort here. This unbreak x86_64 linux build.
llvm-svn: 63940
2009-02-06 17:51:34 +00:00
Evan Cheng
e00df1d39c Move getPointerRegClass from TargetInstrInfo to TargetRegisterInfo.
llvm-svn: 63938
2009-02-06 17:43:24 +00:00
Dan Gohman
5784cf7f6d Move ScheduleDAGSDNodes.h to be a private header. Front-ends
that previously included this header should include
SchedulerRegistry.h instead.

llvm-svn: 63937
2009-02-06 17:22:58 +00:00
Evan Cheng
381b2df5ff Add TargetInstrInfo::isSafeToMoveRegisterClassDefs. It returns true if it's safe to move an instruction which defines a value in the register class. Replace pre-splitting specific IgnoreRegisterClassBarriers with this new hook.
llvm-svn: 63936
2009-02-06 17:17:30 +00:00
Evan Cheng
629b2b88c9 Change -1 => negative number.
llvm-svn: 63935
2009-02-06 17:12:56 +00:00
Dan Gohman
2d402dd7cd Move ScheduleDAGInstrs.h to be a private header. Front-ends
that used this header to select a scheduling policy should
use SchedulerRegistry.h instead (llvm-gcc and clang were
updated a while ago).

llvm-svn: 63934
2009-02-06 17:12:10 +00:00
Evan Cheng
d663d7a7c1 Document the meaning of -1 for getCopyCost.
llvm-svn: 63933
2009-02-06 17:01:33 +00:00
Dan Gohman
b27f01bbf1 Tidy up the ScheduleDAG class definition a little. Make a few
more member functions protected, and group all the protected
members together.

llvm-svn: 63932
2009-02-06 16:50:02 +00:00
Roman Levenstein
bf3ad00ee7 Don't pass BitVectors by value, pass them by reference.
llvm-svn: 63931
2009-02-06 09:16:15 +00:00
Nick Lewycky
c54f8330b0 Correct strange whitespace.
llvm-svn: 63927
2009-02-06 07:01:00 +00:00
Dale Johannesen
cda84103ff get rid of some non-DebugLoc getTargetNode variants.
llvm-svn: 63909
2009-02-06 02:08:06 +00:00
Dale Johannesen
e95c76b65e Get rid of one more non-DebugLoc getNode and
its corresponding getTargetNode.  Lots of
caller changes.

llvm-svn: 63904
2009-02-06 01:31:28 +00:00
Owen Anderson
acbec98578 Refactor my previous change to maintain the distinction between AliasAnalysis and BasicAliasAnalysis. This involves some wider changes because it
folds away some never-used methods.

llvm-svn: 63900
2009-02-05 23:36:27 +00:00
Dale Johannesen
c96091a672 Remove a non-DebugLoc version of getNode.
llvm-svn: 63889
2009-02-05 22:07:54 +00:00
Devang Patel
72f5fba371 Revert rev. 63876. It is causing llvm-gcc bootstrap failure.
llvm-svn: 63888
2009-02-05 21:46:41 +00:00
Dan Gohman
86662c9a04 Delete some trailing whiespaces.
llvm-svn: 63887
2009-02-05 21:34:56 +00:00
Dale Johannesen
b218273a7a Remove 3 non-DebugLoc variants of getNode.
llvm-svn: 63886
2009-02-05 21:20:44 +00:00
Devang Patel
66eee02024 Ignore dbg intrinsics while propagating conditional expression info.
llvm-svn: 63876
2009-02-05 19:15:39 +00:00
Evan Cheng
15495e1cfe Clarify comments.
llvm-svn: 63851
2009-02-05 08:41:53 +00:00
Dale Johannesen
fa28929927 Reapply 63765. Patches for clang and llvm-gcc to follow.
llvm-svn: 63812
2009-02-05 01:49:45 +00:00
Dale Johannesen
c901d013fb Get rid of 3 non-DebugLoc getNode variants.
llvm-svn: 63808
2009-02-05 01:01:16 +00:00
Dale Johannesen
c2896f9310 Remove non-DebugLoc versions of getMergeValues, ZeroExtendInReg.
llvm-svn: 63800
2009-02-05 00:20:09 +00:00
Dale Johannesen
d27bc65e74 Remove non-DebugLoc forms of CopyToReg and CopyFromReg.
Adjust callers.

llvm-svn: 63789
2009-02-04 23:02:30 +00:00
Dale Johannesen
f6e1822ccd Reverting 63765. This broke the build of both clang
and llvm-gcc.

llvm-svn: 63786
2009-02-04 22:47:25 +00:00
Dale Johannesen
15a801f11d Remove non-DebugLoc versions of getLoad and getStore.
Adjust the many callers of those versions.

llvm-svn: 63767
2009-02-04 20:06:27 +00:00
Nate Begeman
66f10b55ed New feature: add support for target intrinsics being defined in the
target directories themselves.  This also means that VMCore no longer
needs to know about every target's list of intrinsics.  Future work
will include converting the PowerPC target to this interface as an
example implementation.

llvm-svn: 63765
2009-02-04 19:47:21 +00:00
Stuart Hastings
9d89863489 Since I'm obliged to work with a development OS that currently doesn't
support GraphViz, I've been using the foo->dump() facility.  This
patch is a minor rewrite to the SelectionDAG dump() stuff to make it a
little more helpful.  The existing foo->dump() functionality does not
change; this patch adds foo->dumpr().  All of this is only useful when
running LLVM under a debugger.

llvm-svn: 63736
2009-02-04 16:46:19 +00:00
Nick Lewycky
8664b2d9e1 Regenerate.
llvm-svn: 63724
2009-02-04 06:27:44 +00:00
Dale Johannesen
19fc835580 Remove non-DebugLoc forms of the exotic forms
of Lod and Sto; patch uses.

llvm-svn: 63716
2009-02-04 02:34:38 +00:00
Chris Lattner
49498bdff4 fix a pretty serious bug in StringMap where GetOrCreate(strstart,strend, z)
would not set new values to Z.

llvm-svn: 63707
2009-02-04 01:54:10 +00:00
Chris Lattner
2291a8be5e add a friend needed by a stringmap change.
llvm-svn: 63706
2009-02-04 01:51:53 +00:00
Dale Johannesen
52d1d8d5a0 Remove some more non-DebugLoc versions of construction
functions, with callers adjusted to fit.

llvm-svn: 63705
2009-02-04 01:48:28 +00:00
Dale Johannesen
2c4af04551 Remove a few non-DebugLoc versions of node creation
functions.

llvm-svn: 63703
2009-02-04 01:17:06 +00:00
Bill Wendling
224d0d60fe Constify and don't return a reference.
llvm-svn: 63689
2009-02-04 00:05:34 +00:00
Dale Johannesen
b129ab17af DebugLoc propagation; adjustment to things omitted
from SelectionDagBuild.

llvm-svn: 63680
2009-02-03 23:04:43 +00:00
Bill Wendling
5179b78c6b Add getDebugLocTuple to retrieve the DebugLocTuple for a given DebugLoc object.
llvm-svn: 63676
2009-02-03 22:49:58 +00:00
Bill Wendling
7627f9e74a Add getter for the index.
llvm-svn: 63675
2009-02-03 22:49:14 +00:00
Dale Johannesen
b7f2857776 Add some DL propagation to places that didn't
have it yet.  More coming.

llvm-svn: 63673
2009-02-03 22:26:09 +00:00
Devang Patel
8c076d8328 Remove dead code.
llvm-svn: 63653
2009-02-03 19:46:28 +00:00
Chris Lattner
2f95b79fee add a method to BumpPtrAllocator that allows allocating elements
with a specified alignment.

llvm-svn: 63629
2009-02-03 07:39:50 +00:00
Dan Gohman
bf5427a7f0 Move isIdentifiedObject and isNoAliasCall into AliasAnalysis.cpp since
they are useful to analyses other than BasicAliasAnalysis.cpp. Include
the full comment for isIdentifiedObject in the header file. Thanks to
Chris for suggeseting this.

llvm-svn: 63589
2009-02-03 01:28:32 +00:00
Bill Wendling
5b177df8e9 Create DebugLoc information in FastISel. Several temporary methods were
created. Specifically, those BuildMIs which use
"DebugLoc::getUnknownLoc()". I'll remove them soon.

llvm-svn: 63584
2009-02-03 00:55:04 +00:00
Dale Johannesen
84498c427e Propagation in TargetLowering. Includes passing a DL
into SimplifySetCC which gets called elsewhere.

llvm-svn: 63583
2009-02-03 00:47:48 +00:00
Dan Gohman
0103631cce Use the SubclassData field to hold ExtType, isTrunc, and MemIndexedMode
information. This eliminates the need for the Flags field in MemSDNode,
so this makes LoadSDNode and StoreSDNode smaller. Also, it makes
FoldingSetNodeIDs for loads and stores two AddIntegers smaller.

llvm-svn: 63577
2009-02-03 00:08:45 +00:00
Mike Stump
4c8ca99bb1 Improve -fno-opt style option processing to not require an extra
option to make the -fno- form on the option.  We also document the new
form in the CommandLine documentation.

llvm-svn: 63559
2009-02-02 22:48:49 +00:00
Owen Anderson
9d2293f7ad MergeValueInto is too smart: it might choose to do the merge the opposite direction.
Live interval reconstruction needs to account for this, and scour its maps to
prevent dangling references.

llvm-svn: 63558
2009-02-02 22:42:01 +00:00
Dale Johannesen
5b1a213918 Commit missing files.
llvm-svn: 63545
2009-02-02 20:47:48 +00:00
Dan Gohman
385f71a725 Reposition the DebugLoc field to reduce padding space
on LP64 hosts.

llvm-svn: 63530
2009-02-02 18:04:24 +00:00
Sanjiv Gupta
c47a19b23e Made the common case of default address space directive as non-virtual for performance reasons. Provide a single virtual interface for directives of all sizes in non-default address spaces.
llvm-svn: 63521
2009-02-02 16:53:06 +00:00
Duncan Sands
cac6cf74f9 Fix PR3453 and probably a bunch of other potential
crashes or wrong code with codegen of large integers:
eliminate the legacy getIntegerVTBitMask and
getIntegerVTSignBit methods, which returned their
value as a uint64_t, so couldn't handle huge types.

llvm-svn: 63494
2009-02-01 18:06:53 +00:00
Duncan Sands
74179a9dde Fix PR3401: when using large integers, the type
returned by getShiftAmountTy may be too small
to hold shift values (it is an i8 on x86-32).
Before and during type legalization, use a large
but legal type for shift amounts: getPointerTy;
afterwards use getShiftAmountTy, fixing up any
shift amounts with a big type during operation
legalization.  Thanks to Dan for writing the
original patch (which I shamelessly pillaged).

llvm-svn: 63482
2009-01-31 15:50:11 +00:00
Chris Lattner
293fe58ff3 add accessors
llvm-svn: 63478
2009-01-31 07:34:19 +00:00
Dale Johannesen
067e8ef08f Move CurDebugLoc into SelectionDAGLowering.
llvm-svn: 63468
2009-01-31 02:22:37 +00:00
Dale Johannesen
7eb7de0393 Fix build on case-sensitive filesystems (i.e. everybody else)
llvm-svn: 63448
2009-01-30 23:20:42 +00:00
Dale Johannesen
39738b1ff8 Make LowerCallTo and LowerArguments take a DebugLoc
argument.  Adjust all callers and overloaded versions.

llvm-svn: 63444
2009-01-30 23:10:59 +00:00
Bill Wendling
67737da99b Get rid of the non-DebugLoc-ified getNOT() method.
llvm-svn: 63442
2009-01-30 23:03:19 +00:00
Bill Wendling
5c326f6512 Propagate debug loc info for some of the *_EXTEND functions.
llvm-svn: 63434
2009-01-30 22:23:15 +00:00
Bill Wendling
211088dc71 DebugLoc form of getNOT().
llvm-svn: 63433
2009-01-30 22:11:22 +00:00
Devang Patel
58511a356b Each input file is encoded as a separate compile unit in LLVM debugging
information output. However, many target specific tool chains prefer to encode
only one compile unit in an object file. In this situation, the LLVM code
generator will include  debugging information entities in the compile unit 
that is marked as main compile unit. The code generator accepts maximum one main
compile unit per module. If a module does not contain any main compile unit 
then the code generator will emit multiple compile units in the output object 
file.

[Part 1]

Update DebugInfo APIs to accept optional boolean value while creating DICompileUnit  to mark the unit as "main" unit. By defaults all units are considered  non-main.  Update SourceLevelDebugging.html to document "main" compile unit.

Update DebugInfo APIs to not accept and encode separate source file/directory entries while creating various llvm.dbg.* entities. There was a recent, yet to be documented, change to include this additional information so no documentation changes are required here.

Update DwarfDebug to handle "main" compile unit. If "main" compile unit is seen then all DIEs are inserted into "main" compile unit. All other compile units are used to find source location for llvm.dbg.* values. If there is not any "main" compile unit then create unique compile unit DIEs for each llvm.dbg.compile_unit.

[Part 2]

Create separate llvm.dbg.compile_unit for each input file. Mark compile unit create for main_input_filename as "main" compile unit. Use appropriate compile unit, based on source location information collected from the tree node, while creating llvm.dbg.* values using DebugInfo APIs.

---

This is Part 1.

llvm-svn: 63400
2009-01-30 18:20:31 +00:00
Mike Stump
a0b25f92ce Add opposite_of and inverse_opt to support -fno- style options. This
is necessary for eventual gcc commmand line compatibility.

llvm-svn: 63384
2009-01-30 08:19:46 +00:00
Sanjiv Gupta
e442452ade Enable emitting of constant values in non-default address space as well. The APIs emitting constants now take an additional parameter signifying the address space in which to emit. The APIs like getData8BitsDirective() etc are made virtual enabling targets to be able to define appropirate directivers for various sizes and address spaces.
llvm-svn: 63377
2009-01-30 04:25:10 +00:00
Dan Gohman
50283ce80b Fix a post-RA scheduling dependency bug.
If a MachineInstr doesn't have a memoperand but has an opcode that
is known to load or store, assume its memory reference may alias
*anything*, including stack slots which the compiler completely
controls.

To partially compensate for this, teach the ScheduleDAG building
code to do basic getUnderlyingValue analysis. This greatly
reduces the number of instructions that require restrictive
dependencies. This code will need to be revisited when we start
doing real alias analysis, but it should suffice for now.

llvm-svn: 63370
2009-01-30 02:49:14 +00:00
Bill Wendling
030f0fced8 - Propagate debug loc info in combineSelectAndUse().
- Modify ReassociateOps so that the resulting SDValue is what the comment claims
  it is.

llvm-svn: 63365
2009-01-30 02:23:43 +00:00
Chris Lattner
526d29d06a Fix a bug in getMaxValue/getMinValue to pass the right signedness the
the constructed APSInt, patch suggested by Ben Laurie!

llvm-svn: 63362
2009-01-30 01:58:19 +00:00
Dale Johannesen
4855b2e85d Propagate debug info when building SelectionDAG.
llvm-svn: 63359
2009-01-30 01:34:22 +00:00
Devang Patel
65885d7f73 Add dump() routines to help debug debug info :)
llvm-svn: 63353
2009-01-30 01:03:10 +00:00
Bill Wendling
fc00dc63dc Revert r63273. This was already implemented by Dale. There's no need for my
change.

llvm-svn: 63301
2009-01-29 09:01:55 +00:00
Bill Wendling
c65110ba7e - Add DebugLoc to getTargetNode().
- Modify TableGen to add the DebugLoc when calling getTargetNode.

(The light-weight wrappers are only temporary. The non-DebugLoc version will be
removed once the whole debug info stuff is finished with.)

llvm-svn: 63273
2009-01-29 05:27:31 +00:00
Evan Cheng
1346d22223 Exit with nice warnings when register allocator run out of registers.
llvm-svn: 63267
2009-01-29 02:20:59 +00:00
Dan Gohman
9d120d6d8f Make x86's BT instruction matching more thorough, and add some
dagcombines that help it match in several more cases. Add
several more cases to test/CodeGen/X86/bt.ll. This doesn't
yet include matching for BT with an immediate operand, it
just covers more register+register cases.

llvm-svn: 63266
2009-01-29 01:59:02 +00:00
Dale Johannesen
9d1e40ac34 Add DebugLoc-sensitive versions of many node creation
functions.  Currently omitted:  memcpy, memmove, memset.

llvm-svn: 63259
2009-01-29 00:47:48 +00:00
Evan Cheng
da5915379c Fix comment about removeRange.
llvm-svn: 63255
2009-01-29 00:06:09 +00:00
Bill Wendling
03582504e0 Add DebugLoc to the getNode() methods.
llvm-svn: 63245
2009-01-28 22:17:52 +00:00
Dan Gohman
9ebb5025a9 Add more comments describing SDNode operator codes.
llvm-svn: 63239
2009-01-28 21:34:36 +00:00
Dale Johannesen
48b6d8aea9 Add DebugLoc-aware constructors for SDNode derived
classes (those that reasonably have a DebugLoc
associated with them).

llvm-svn: 63236
2009-01-28 21:18:29 +00:00
Dan Gohman
37ee92ab04 Add some comments on ISD::NodeType.
llvm-svn: 63234
2009-01-28 21:13:08 +00:00
Dan Gohman
bb9695f3c7 Delete unnecessary elses.
llvm-svn: 63214
2009-01-28 18:03:09 +00:00
Chris Lattner
c6c7875f01 Enable PACKAGE_VERSION in cmake builds, this unbreaks the clang build with cmake.
Patch by Piotr Rak!

llvm-svn: 63213
2009-01-28 17:49:03 +00:00
Dan Gohman
bc43253a91 Make isOperationLegal do what its name suggests, and introduce a
new isOperationLegalOrCustom, which does what isOperationLegal
previously did.

Update a bunch of callers to use isOperationLegalOrCustom
instead of isOperationLegal. In some case it wasn't obvious
which behavior is desired; when in doubt I changed then to
isOperationLegalOrCustom as that preserves their previous
behavior.

This is for the second half of PR3376.

llvm-svn: 63212
2009-01-28 17:46:25 +00:00
Duncan Sands
aee16d4916 Rename getAnalysisToUpdate to getAnalysisIfAvailable.
llvm-svn: 63198
2009-01-28 13:14:17 +00:00
Duncan Sands
3350448d05 Fix PR3415 (infinite loop in EscapeAnalysis) by
deleting the escape analysis pass.

llvm-svn: 63197
2009-01-28 11:33:59 +00:00
Mikhail Glushenkov
920118470d Add three new option properties.
Adds new option properties 'multi_val', 'one_or_more' and 'zero_or_one'.

llvm-svn: 63172
2009-01-28 03:47:20 +00:00
Bill Wendling
2cea322e5f Comment fixes.
llvm-svn: 63164
2009-01-28 01:19:52 +00:00
Dale Johannesen
8a25527d57 Embalm my ideas of how things should work. Not that
anyone will pay attention.

llvm-svn: 63155
2009-01-27 23:32:10 +00:00
Dale Johannesen
718c678fde Add a DebugLoc field and some simple accessors.
llvm-svn: 63152
2009-01-27 23:20:29 +00:00
Dale Johannesen
e50b41d4f5 Reorder args, constify.
llvm-svn: 63151
2009-01-27 23:19:41 +00:00
Dan Gohman
953478bd30 Use .empty() instead of comparing .size() with 0.
llvm-svn: 63139
2009-01-27 22:12:23 +00:00
Dale Johannesen
3685c30b26 Update to latest spelling.
llvm-svn: 63138
2009-01-27 22:09:11 +00:00
Dale Johannesen
eeacf8c68e Add DebugLoc field and simple accessors.
llvm-svn: 63136
2009-01-27 21:41:04 +00:00
Evan Cheng
3330206ff6 Refine DebugLoc per review comments.
llvm-svn: 63132
2009-01-27 21:15:07 +00:00
Dan Gohman
0400e83ed8 Add an assertion to the form of SelectionDAG::getConstant that takes
a uint64_t to verify that the value is in range for the given type,
to help catch accidental overflow. Fix a few places that relied on
getConstant implicitly truncating the value.

llvm-svn: 63128
2009-01-27 20:39:34 +00:00
Dan Gohman
b2cf79db33 Make some comments doxygen-friendly.
llvm-svn: 63104
2009-01-27 17:28:23 +00:00
Evan Cheng
876e75cb70 No need to keep size of DebugLocations vector separately.
llvm-svn: 63070
2009-01-26 23:47:30 +00:00
Scott Michel
56fa9ba0b6 Make the Dwarf macro information section optional; CellSPU's assembler
doesn't support it. The default is set to 'true', so this should not
impact any other target backends.

llvm-svn: 63058
2009-01-26 22:32:51 +00:00
Dan Gohman
3a51d8e847 Implement Red Zone utilization on x86-64. This is currently
disabled by default; I'll enable it when I hook it up with
the llvm-gcc flag which controls it.

llvm-svn: 63056
2009-01-26 22:22:31 +00:00
Ted Kremenek
d8045c9154 Add method raw_fd_ostream::seek() for random access within a file.
llvm-svn: 63044
2009-01-26 21:42:04 +00:00
Dan Gohman
2932f7e681 Fix the name of an argument.
llvm-svn: 63037
2009-01-26 20:27:11 +00:00
Roman Levenstein
504ba4c98b Fix a bug in BitVector.h. All assignment operations (except the usual
assignment operator) were returning a copy of the bit vector, instead of a
reference! This old semantics probably did not meet the expectations.
With this patch, chained assignments happen to the right object.

llvm-svn: 63012
2009-01-26 11:07:20 +00:00
Evan Cheng
300df6af4f Actually source file has already been uniquified into an id during isel. Eliminate the StringMap.
llvm-svn: 63009
2009-01-26 07:53:42 +00:00
Evan Cheng
9fda834684 Add data structure to define and track debug location during codegen.
llvm-svn: 63008
2009-01-26 07:41:49 +00:00
Evan Cheng
735e3b02aa Looks like comments were chopped off.
llvm-svn: 63007
2009-01-26 07:40:13 +00:00
Evan Cheng
78aa4f34d8 LLVM_SUPPORT_DEBUGINFO_H -> LLVM_ANALYSIS_DEBUGINFO_H since DebugInfo.h is under Analysis.
llvm-svn: 63005
2009-01-26 07:31:20 +00:00
Dan Gohman
4abaebae0c Take the next steps in making SDUse more consistent with LLVM Use, and
tidy up SDUse and related code.
 - Replace the operator= member functions with a set method, like
   LLVM Use has, and variants setInitial and setNode, which take
   care up updating use lists, like LLVM Use's does. This simplifies
   code that calls these functions.
 - getSDValue() is renamed to get(), as in LLVM Use, though most
   places can either use the implicit conversion to SDValue or the
   convenience functions instead.
 - Fix some more node vs. value terminology issues.

Also, eliminate the one remaining use of SDOperandPtr, and
SDOperandPtr itself.

llvm-svn: 62995
2009-01-26 04:35:06 +00:00
Dan Gohman
15770b411b Eliminate the loop that searches through each of the operands
of each use in the SelectionDAG ReplaceAllUses* functions. Thanks
to Chris for spotting this opportunity.

Also, factor out code from all 5 of the ReplaceAllUses* functions
into AddNonLeafNodeToCSEMaps, which is now renamed
AddModifiedNodeToCSEMaps to more accurately reflect its purpose.

llvm-svn: 62964
2009-01-25 16:29:12 +00:00
Devang Patel
d980abaae2 Introduce two DWARF attribute extentions DW_AT_APPLE_optimized, DW_AT_APPLE_flags.
DW_AT_APPLE_optimized flag is set when a compile_unit is optimized. The debugger takes advantage of this information some way.

DW_AT_APPLE_flags encodes command line options when certain env. variable is set. This is used by build engineers to track various gcc command lines used by by  a project, irrespective of whether the project used makefile, Xcode or something else.

llvm-gcc patch is next.

llvm-svn: 62888
2009-01-23 22:33:47 +00:00
Gabor Greif
fbd40904c1 Simplify the logic of getting hold of a PHI predecessor block.
There is now a direct way from value-use-iterator to incoming block in PHINode's API.
This way we avoid the iterator->index->iterator trip, and especially the costly
getOperandNo() invocation. Additionally there is now an assertion that the iterator
really refers to one of the PHI's Uses.

llvm-svn: 62869
2009-01-23 19:40:15 +00:00
Nate Begeman
4de6ffb743 Add support for deleting a module provider from a JIT in such a way that it does not cause the owned module to be fully materialized.
llvm-svn: 62864
2009-01-23 19:27:28 +00:00
Evan Cheng
7cdc6e4f8c Cross register class coalescing. Not yet enabled.
llvm-svn: 62832
2009-01-23 02:15:19 +00:00
Gabor Greif
d56b0a8c03 introduce a useful abstraction to find out if a Use is in the call position of an instruction
llvm-svn: 62788
2009-01-22 21:35:57 +00:00
Tanya Lattner
11d2325f0a Regenerated configure after backing out 62553 and r62616.
llvm-svn: 62778
2009-01-22 20:11:17 +00:00
Chris Lattner
da545d3918 rename methods in System/Host to be more consistent.
llvm-svn: 62776
2009-01-22 19:53:00 +00:00
Bob Wilson
186046e657 Add SelectionDAG::getNOT method to construct bitwise NOT operations,
corresponding to the "not" and "vnot" PatFrags.  Use the new method
in some places where it seems appropriate.

llvm-svn: 62768
2009-01-22 17:39:32 +00:00
Evan Cheng
c971801ae1 Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead.
llvm-svn: 62762
2009-01-22 09:10:11 +00:00
Tanya Lattner
98382d83c1 Bump to 2.6svn.
Regenerate configure (last regen was with the wrong version).

llvm-svn: 62751
2009-01-22 05:17:59 +00:00
Bill Wendling
ffdc0db38b The operator<() and operator>() were reversing their tests. Have the test the correct way.
llvm-svn: 62745
2009-01-22 03:05:10 +00:00
Bill Wendling
b7de7afd32 Get rid of warning about implicit 64-to-32 bit conversions.
llvm-svn: 62741
2009-01-22 02:10:33 +00:00
Steve Naroff
375325e8c1 Add explicit this-> (to make the VS compiler happy).
llvm-svn: 62731
2009-01-21 23:49:23 +00:00
Douglas Gregor
0a0af6b767 Fix ilist two-phase name lookup
llvm-svn: 62724
2009-01-21 22:38:44 +00:00
Dan Gohman
d469bd5137 Add a comment to SelectionDAG::ReplaceAllUsesWith to describe a subtle
iteraction with SelectionDAG CSE.

llvm-svn: 62713
2009-01-21 20:50:09 +00:00
Dale Johannesen
a5699a1e8b Do not use host floating point types when emitting
ASCII IR; loading and storing these can change the
bits of NaNs on some hosts.  Remove or add warnings
at a few other places using host floating point;
this is a bad thing to do in general.

llvm-svn: 62712
2009-01-21 20:32:55 +00:00
Chris Lattner
b4ffb1f824 add getPointerToGlobal to the C bindings, patch by Lennart Augustsson!
PR3364

llvm-svn: 62697
2009-01-21 18:11:10 +00:00
Duncan Sands
392dc77fc6 Cleanup whitespace and comments, and tweak some
prototypes, in operand type legalization.  No
functionality change.

llvm-svn: 62680
2009-01-21 09:00:29 +00:00
Sanjiv Gupta
074553c4fb Allow targets to legalize operations (with illegal operands) that produces multiple values. For example, a load with an illegal operand (a load produces two values, a value and chain).
llvm-svn: 62663
2009-01-21 04:48:39 +00:00