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

12495 Commits

Author SHA1 Message Date
Dan Gohman
8a813c4ded Remove IntrWriteMem, as it's the default. Rename IntrWriteArgMem
to IntrReadWriteArgMem, as it's for reading as well as writing.

llvm-svn: 110395
2010-08-05 23:36:21 +00:00
Eric Christopher
eb4632cab2 Revert my last commit, apparently it's a runtime issue.
llvm-svn: 110387
2010-08-05 22:48:32 +00:00
Eric Christopher
9121517a85 Remove unnecessary include.
llvm-svn: 110385
2010-08-05 22:28:22 +00:00
Gabor Greif
f2465b8757 remove the private hack from CallInst, it was not supposed to hit the branch anyway
as a positive consequence the CallSite::getCallee() methods now can be rewritten to be
a bit more efficient

llvm-svn: 110380
2010-08-05 21:25:49 +00:00
Owen Anderson
aeaf73ecb2 Give ConstantRange an operator=
llvm-svn: 110376
2010-08-05 20:51:10 +00:00
Jakob Stoklund Olesen
21e64c3fae Remove double-def checking from MachineVerifier, so a register does not have to
be killed before being redefined.

These checks are usually disabled, and usually fail when enabled. We de facto
allow live registers to be redefined without a kill, the corresponding
assertions in RegScavenger were removed long ago.

llvm-svn: 110362
2010-08-05 18:59:59 +00:00
Dan Gohman
9ded12adcb Delete obsolete comments.
llvm-svn: 110277
2010-08-04 23:08:15 +00:00
Torok Edwin
967fc5164f Add a missing function.
llvm-svn: 110195
2010-08-04 11:42:45 +00:00
Torok Edwin
7cc5e5f017 Fix build of DataFlow.h
llvm-svn: 110193
2010-08-04 09:30:20 +00:00
Dan Gohman
5e71e706b0 Don't construct a std::string with a literal "".
llvm-svn: 110180
2010-08-04 01:14:33 +00:00
Dan Gohman
ab805c5aae Don't print the filename twice in file-not-found errors.
llvm-svn: 110179
2010-08-04 01:13:48 +00:00
Bruno Cardoso Lopes
efd0309322 Fix a comment typo and add more 256-bit intrinsics
llvm-svn: 110177
2010-08-04 01:09:40 +00:00
Dan Gohman
aac19e4ffe Remove PointerAccessInfo, which nothing was using.
llvm-svn: 110167
2010-08-03 23:08:10 +00:00
Dan Gohman
a087b90950 Thread const correctness through a bunch of AliasAnalysis interfaces and
eliminate several const_casts.

Make CallSite implicitly convertible to ImmutableCallSite.

Rename the getModRefBehavior for intrinsic IDs to
getIntrinsicModRefBehavior to avoid overload ambiguity with CallSite,
which happens to be implicitly convertible to bool.

llvm-svn: 110155
2010-08-03 21:48:53 +00:00
Nate Begeman
b506e13a32 Add support for getting & setting the FPSCR application register on ARM when VFP is enabled.
Add support for using the FPSCR in conjunction with the vcvtr instruction, for controlling fp to int rounding.
Add support for the FLT_ROUNDS_ node now that the FPSCR is exposed.

llvm-svn: 110152
2010-08-03 21:31:55 +00:00
Peter Collingbourne
10c4f9d6bd Add an atomic lowering pass
llvm-svn: 110113
2010-08-03 16:19:16 +00:00
Daniel Dunbar
3dd4738933 build: Add LLVM_NATIVE_ARCHNAME, which has the sensible value, without "Target"
appended.

llvm-svn: 110109
2010-08-03 14:26:17 +00:00
Bruno Cardoso Lopes
49444b1cb2 Support x86 AVX 256-bit instruction intrinsics. Right now support all of them, but
as soon as we properly codegen the simple vector operations in clang, remove the
unnecessary builti-ins/intrinsics from clang and llvm.

llvm-svn: 110094
2010-08-03 01:53:41 +00:00
Dan Gohman
aabb615d52 Update some comments.
llvm-svn: 110092
2010-08-03 01:07:32 +00:00
Dan Gohman
6604a72154 Introduce a symbolic constant for ~0u for use with AliasAnalysis.
llvm-svn: 110091
2010-08-03 01:03:11 +00:00
Dan Gohman
e0489ffe8e Add a convenient form of AliasAnalysis::alias for the case where the sizes
are unknown.

llvm-svn: 110090
2010-08-03 00:56:30 +00:00
Dan Gohman
68ac0492a4 Make SCEVUnknown a CallbackVH, so that it can be notified directly
of Value deletions and RAUWs, instead of relying on ScalarEvolution's
Scalars map being notified, as that's complicated at best, and
insufficient in general.

This means SCEVUnknown needs a non-trivial destructor, so introduce
a mechanism to allow ScalarEvolution to locate all the SCEVUnknowns.

llvm-svn: 110086
2010-08-02 23:49:30 +00:00
Dan Gohman
9d80b87a4d Sketch up a preliminary Type-Based Alias Analysis implementation.
llvm-svn: 110077
2010-08-02 23:11:01 +00:00
Devang Patel
f18faa5945 Add explicit constructors. Patch by Renato Golin.
llvm-svn: 110072
2010-08-02 22:51:46 +00:00
Daniel Dunbar
58b2cb7e69 Targets: Add InitializeNativeTargetAsmPrinter(), patch by Jan Sjodin, although
rewritten by me to not require updating all the target initialization routine
names.

llvm-svn: 109996
2010-08-01 23:36:18 +00:00
Gabor Greif
c8f033fdb3 doxygenize argument accessors
llvm-svn: 109950
2010-07-31 08:35:21 +00:00
Michael J. Spencer
b52ff1ba41 Add relax all support to the COFF object streamer.
llvm-svn: 109947
2010-07-31 06:22:29 +00:00
Rafael Espindola
75734bc143 The BlockExtractorPass() constructor was not reading the BlockFile and that was
exactly what bugpoint expected it to do.

There was also only one user of
BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and
make BlockExtractorPass read BlockFile.

This fixes bugpoint's block extraction.

Nick, please review.

llvm-svn: 109936
2010-07-31 00:32:17 +00:00
Bill Wendling
f70b028327 Add a "Compare" flag to the target instruction descriptor. This will be used
later to identify and possibly remove superfluous compare instructions -- those
that are testing for and setting a status flag that should already be set.

llvm-svn: 109901
2010-07-30 22:48:39 +00:00
Dan Gohman
230d92b375 Move MaximumAlignment to be a member of the Value class.
llvm-svn: 109891
2010-07-30 21:07:05 +00:00
Nick Lewycky
460d1a457b LibCallAliasAnalysis uses multiple inheritance, so it needs to implement
getAdjustedAnalysisPointer. Part of a fix to PR7760.

llvm-svn: 109883
2010-07-30 20:19:09 +00:00
Duncan Sands
57ab333302 Fix the ValueMap copy constructor. The issue is that the map keys are value
handles with a pointer to the containing map.  When a map is copied, these
pointers need to be corrected to point to the new map.  If not, then consider
the case of a map M1 which maps a value V to something.  Create a copy M2 of
M1.  At this point there are two value handles on V, one representing V as a
key in M1, the other representing V as a key in M2.  But both value handles
point to M1 as the containing map.  Now delete V.  The value handles remove
themselves from their containing map (which destroys them), but only the first
value handle is successful: the second one cannot remove itself from M1 as
(once the first one has removed itself) there is nothing there to remove; it
is therefore not destroyed.  This causes an assertion failure "All references
to V were not removed?".

llvm-svn: 109851
2010-07-30 05:49:32 +00:00
Gabor Greif
d85a524ba1 remove a layer of cruft
llvm-svn: 109821
2010-07-29 23:35:00 +00:00
Nate Begeman
0b0f838c32 Add builtins for ssat/usat, similar to RealView's __ssat and __usat intrinsics.
llvm-svn: 109813
2010-07-29 22:48:09 +00:00
Eric Christopher
793776c154 Grammar.
llvm-svn: 109775
2010-07-29 18:11:28 +00:00
Nate Begeman
b24fa8b8ae Add intrinsics __builtin_arm_qadd & __builtin_arm_qsub to allow access to the QADD & QSUB instructions.
Behave identically to __qadd & __qsub RealView instruction intrinsics.

llvm-svn: 109770
2010-07-29 17:56:55 +00:00
Benjamin Kramer
d1340209a1 Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter.
llvm-svn: 109767
2010-07-29 17:48:06 +00:00
Benjamin Kramer
85d8649a9c Stop leaking std::strings in GetDwarfFile.
llvm-svn: 109746
2010-07-29 13:53:19 +00:00
Eric Christopher
6a1da7b4a5 Speculatively revert r109705 since it seems to be causing some build bot
angst.

llvm-svn: 109718
2010-07-29 01:25:38 +00:00
Dan Gohman
ea1486b53c Factor out some of the code for updating old SCEVUnknown values, and
extend it to handle the case where multiple RAUWs affect a single
SCEVUnknown.

Add a ScalarEvolution unittest to test for this situation.

llvm-svn: 109705
2010-07-29 00:17:55 +00:00
Owen Anderson
8769f9a8dd Add an erase() method to llvm::ThreadLocal.
llvm-svn: 109686
2010-07-28 22:49:43 +00:00
Owen Anderson
a2322de83e Add more doxygen comments for llvm::ThreadLocal.
llvm-svn: 109683
2010-07-28 22:30:53 +00:00
Dan Gohman
1aa32ead98 Move MaximumAlignment to Value.h, now that GlobalValue.h needs it.
llvm-svn: 109656
2010-07-28 21:02:38 +00:00
Dan Gohman
343e4fb4ea Make GlobalValue alignment consistent with load, store, and alloca
alignment, fixing silent truncation of alignment values.

llvm-svn: 109653
2010-07-28 20:56:48 +00:00
Kevin Enderby
3f202e65e8 Added first bit of support for the dwarf .file directive. This patch collects
the info from the .file directive and makes file and directory tables that
will eventually be put out as part of the dwarf info in the output file.

llvm-svn: 109651
2010-07-28 20:55:35 +00:00
Daniel Dunbar
1c35389c03 MC: Put back the MCFragment vtable, so subclasses are destroyed properly (duh).
llvm-svn: 109649
2010-07-28 20:28:45 +00:00
Dan Gohman
939744be5f Define a maximum supported alignment value for load, store, and
alloca instructions (constrained by their internal encoding),
and add error checking for it. Fix an instcombine bug which
generated huge alignment values (null is infinitely aligned).
This fixes undefined behavior noticed by John Regehr.

llvm-svn: 109643
2010-07-28 20:12:04 +00:00
Dan Gohman
b4699b3002 Add some extra friend declarations to fix a gcc-4.0 compile error.
This is a temporary fix, until more elaborate changes are ready.

llvm-svn: 109593
2010-07-28 17:09:24 +00:00
Daniel Dunbar
4cf25fa76a Support: Add CrashRecoveryContext helper object.
- Designed as a simple wrapper to allow clients to attempt to catch crashes
   (memory errors, assertion violations, etc.) and do some kind of recovery.

 - Currently doesn't actually attempt to catch crashes.

llvm-svn: 109586
2010-07-28 15:40:20 +00:00
Gabor Greif
37e8f2b3b8 we are supposed to only create proper CallSites from an instruction (esp. CallInst and InvokeInst)
llvm-svn: 109576
2010-07-28 10:44:59 +00:00
Dan Gohman
2dcafa2402 Add a comment.
llvm-svn: 109565
2010-07-28 00:21:18 +00:00
Owen Anderson
fd7fc038ac Fill out the interface of DenseSet a bit.
llvm-svn: 109562
2010-07-27 23:55:47 +00:00
Gabor Greif
ec0c7b2427 reintroduce original (asserting) semantics of CallSite(Instruction *II)
add instead a CallSite(Value* V) constructor that is consistent with ImmutableCallSize
and use that one in client code

llvm-svn: 109553
2010-07-27 22:53:28 +00:00
Gabor Greif
262e51d31d remove bogus assert, use static_cast for additional checking
left two new asserts commented out, because they would fire in clang, have to hunt those down first

llvm-svn: 109544
2010-07-27 21:46:11 +00:00
Chris Lattner
1cc20eea6f make lookup failures not fatal.
llvm-svn: 109530
2010-07-27 18:59:50 +00:00
Mikhail Glushenkov
33c561c22c Return -1 only on failure to execute a program.
Also fix some comments.

llvm-svn: 109499
2010-07-27 11:19:36 +00:00
Duncan Sands
a5314238d6 In commit 91421, isPod was changed from false to true for these value handles.
Change it back again: destructors and constructors need to be run.

llvm-svn: 109498
2010-07-27 09:09:05 +00:00
Tobias Grosser
ebc6c0cf50 RegionInfo: Add getMaxRegionExit()
getMaxRegionExit returns the exit of the maximal refined region starting
at a specific basic block.

llvm-svn: 109496
2010-07-27 08:39:43 +00:00
Tobias Grosser
16789d79fe Add function to query RegionInfo about loops.
* contains(Loop), * getOutermostLoop()
* Improve getNameStr() to return a sensible name, if basic blocks are not named.

llvm-svn: 109490
2010-07-27 04:17:13 +00:00
Bill Wendling
bb2398331b It's better to have the arrays, which would trigger the creation of stack
protectors, to be near the stack protectors on the stack. Accomplish this by
tagging the stack object with a predicate that indicates that it would trigger
this. In the prolog-epilog inserter, assign these objects to the stack after the
stack protector but before the other objects.

llvm-svn: 109481
2010-07-27 01:55:19 +00:00
Dan Gohman
66b6f7d702 Use AssertingVH for InsertedValues and InsertedPostIncValues, to verify
that the values they refer to aren't being deleted underneath them.

Make sure these containters get cleared by clear(), which IndVarSimplify
and LSR both use before deleting instructions.

llvm-svn: 109478
2010-07-27 01:19:06 +00:00
Dan Gohman
4437c8fbf7 Add a comment.
llvm-svn: 109435
2010-07-26 21:05:37 +00:00
Gabor Greif
7ae22e4471 re-commit r109220, the compile error has already been fixed
Simplifying use_iterators by dereferencing
is not a good idea. The codebase does not depend
in this any more, and it may introduce hidden
runtime cost. If you get compile errors, please
dereference your iterator before passing to cast<>
(and friends).

Also: please consider caching the result of
operator* and reusing that instead of dereferencing
many times.

llvm-svn: 109425
2010-07-26 18:48:07 +00:00
Owen Anderson
12ab6162bf Add an initial implementation of LazyValueInfo updating for JumpThreading. Disabled for now.
llvm-svn: 109424
2010-07-26 18:48:03 +00:00
Dan Gohman
23a6a1bdc5 Remove LCSSA's bogus dependence on LoopSimplify and LoopSimplify's bogus
dependence on DominanceFrontier. Instead, add an explicit DominanceFrontier
pass in StandardPasses.h to ensure that it gets scheduled at the right
time.

Declare that loop unrolling preserves ScalarEvolution, and shuffle some
getAnalysisUsages.

This eliminates one LoopSimplify and one LCCSA run in the standard
compile opts sequence.

llvm-svn: 109413
2010-07-26 18:11:16 +00:00
Michael J. Spencer
9d96c92bde MC: Add WinCOFFObjectWriter implementation.
Origonal Windows COFF implementation by Nathan Jedffords.

llvm-svn: 109389
2010-07-26 02:17:32 +00:00
Lang Hames
998b522009 Factored out a bit of common code to mark VNInfos for deletion.
llvm-svn: 109388
2010-07-26 01:49:41 +00:00
Anton Korobeynikov
7ae895e007 Hook in GlobalMerge pass
llvm-svn: 109359
2010-07-24 21:52:08 +00:00
Anton Korobeynikov
2a0715eb1b Add hook to insert late LLVM=>LLVM passes just before isel
llvm-svn: 109354
2010-07-24 20:48:54 +00:00
Chris Lattner
ae021d8590 add a new NullablePtr class which makes it more obvious in API
that a pointer can be null, forcing clients to think about it.

llvm-svn: 109348
2010-07-24 18:47:46 +00:00
Evan Cheng
a0b74d8804 Add an ILP scheduler. This is a register pressure aware scheduler that's
appropriate for targets without detailed instruction iterineries.
The scheduler schedules for increased instruction level parallelism in
low register pressure situation; it schedules to reduce register pressure
when the register pressure becomes high.

On x86_64, this is a win for all tests in CFP2000. It also sped up 256.bzip2
by 16%.

llvm-svn: 109300
2010-07-24 00:39:05 +00:00
Owen Anderson
e64c7514fb Fix use-after-free error.
llvm-svn: 109288
2010-07-23 23:27:43 +00:00
Evan Cheng
f215e55d5f - Allow target to specify when is register pressure "too high". In most cases,
it's too late to start backing off aggressive latency scheduling when most
  of the registers are in use so the threshold should be a bit tighter.
- Correctly handle live out's and extract_subreg etc.
- Enable register pressure aware scheduling by default for hybrid scheduler.
  For ARM, this is almost always a win on # of instructions. It's runtime
  neutral for most of the tests. But for some kernels with high register
  pressure it can be a huge win. e.g. 464.h264ref reduced number of spills by
  54 and sped up by 20%.

llvm-svn: 109279
2010-07-23 22:39:59 +00:00
Dan Gohman
e6e38c1685 Eliminate getCanonicalInductionVariableIncrement's last user and
eliminate it.

llvm-svn: 109270
2010-07-23 21:34:51 +00:00
Eric Christopher
883daea18d Revert r109102 for now as it's causing JIT miscompilations.
I'll try to track down why a bit later.

llvm-svn: 109223
2010-07-23 12:16:56 +00:00
Eric Christopher
ea5f4cc47c Revert 109220.
llvm-svn: 109221
2010-07-23 08:53:17 +00:00
Gabor Greif
af73f58852 Simplifying use_iterators by dereferencing
is not a good idea. The codebase does not depend
in this any more, and it may introduce hidden
runtime cost. If you get compile errors, please
dereference your iterator before passing to cast<>
(and friends).

Also: please consider caching the result of
operator* and reusing that instead of dereferencing
many times.

llvm-svn: 109220
2010-07-23 08:36:07 +00:00
Mikhail Glushenkov
a73b239681 StringRef'icate.
llvm-svn: 109217
2010-07-23 04:19:39 +00:00
Mikhail Glushenkov
bbeb485c74 Get rid of exceptions in llvmc.
llvmc can be now compiled with llvm-gcc on Windows.

llvm-svn: 109215
2010-07-23 03:42:55 +00:00
Chris Lattner
ab2419e712 give StringMap a new ctor which allows you to initialize it
with an existing allocator.  The interesting use case of this
is that it allows "StringMap<whatever, BumpPtrAllocator&>" for
when you want to allocate out of a preexisting bump pointer
allocator owned by someone else.

llvm-svn: 109213
2010-07-23 03:29:59 +00:00
Chris Lattner
8697533a43 modernize stringset interface
llvm-svn: 109212
2010-07-23 03:21:53 +00:00
Eric Christopher
4bedc1720a Warnings patrol.
llvm-svn: 109174
2010-07-22 21:51:30 +00:00
Chris Lattner
a1dcdf0bd4 eliminate the TargetInstrInfo::GetInstSizeInBytes hook.
ARM/PPC/MSP430-specific code (which are the only targets that
implement the hook) can directly reference their target-specific
instrinfo classes.

llvm-svn: 109171
2010-07-22 21:27:00 +00:00
Chris Lattner
65ad913bec remove the JIT "NeedsExactSize" feature and supporting logic.
llvm-svn: 109167
2010-07-22 21:17:55 +00:00
Gabor Greif
a1f9f82eb5 fit in 80 columns
llvm-svn: 109108
2010-07-22 14:13:14 +00:00
Duncan Sands
3fb5f1dccc Increase the max physreg size. Patch by Pekka Jääskeläinen.
llvm-svn: 109102
2010-07-22 13:10:14 +00:00
Tobias Grosser
604a50cd71 Add new RegionInfo pass.
The RegionInfo pass detects single entry single exit regions in a function,
where a region is defined as any subgraph that is connected to the remaining
graph at only two spots.
Furthermore an hierarchical region tree is built.
Use it by calling "opt -regions analyze" or "opt -view-regions".

llvm-svn: 109089
2010-07-22 07:46:31 +00:00
Reid Kleckner
3a876ca187 Initial modifications to MCAssembler and TargetMachine for the MCJIT.
Patch by Olivier Meurant!

llvm-svn: 109080
2010-07-22 05:58:53 +00:00
Lang Hames
6c2677e83c If 'other' was empty 'overlapsFrom(other, other.begin());' will segfault. This avoids that.
llvm-svn: 109075
2010-07-22 02:05:10 +00:00
Dan Gohman
859ffd353e Make NamedMDNode not be a subclass of Value, and simplify the interface
for creating and populating NamedMDNodes.

llvm-svn: 109061
2010-07-21 23:38:33 +00:00
Owen Anderson
b36d01c1b6 Add INSTANTIATE_AG_PASS, which combines RegisterPass<> with RegisterAnalysisGroup<> for pass registration.
llvm-svn: 109058
2010-07-21 23:07:00 +00:00
Jim Grosbach
489d758ea8 For ARM/Darwin, add a dwarf entry indicating whether a function is arm or thumb
rdar://8202967

llvm-svn: 109057
2010-07-21 23:03:52 +00:00
Jim Grosbach
2dc4ae051d tidy up
llvm-svn: 109042
2010-07-21 22:04:53 +00:00
Owen Anderson
e8e8b5a744 Add the INITIALIZE_PASS macro.
llvm-svn: 109034
2010-07-21 20:46:41 +00:00
Dan Gohman
fc3ee085a0 Disallow null as a named metadata operand.
Make MDNode::destroy private.
Fix the one thing that used MDNode::destroy, outside of MDNode itself.

One should never delete or destroy an MDNode explicitly. MDNodes
implicitly go away when there are no references to them (implementation
details aside).

llvm-svn: 109028
2010-07-21 18:54:18 +00:00
Daniel Dunbar
5b941007ca Use System/DataTypes.h instead of stdint.h, which isn't portable.
llvm-svn: 109026
2010-07-21 18:48:59 +00:00
Dan Gohman
b0db34a612 Use TrackingVH instead of WeakVH for NamedMDNode's operands, since nodes
referenced by NamedMDNodes shouldn't be deleted.

llvm-svn: 109021
2010-07-21 18:01:42 +00:00
Owen Anderson
f26c7a852f Move the smarts of AnalysisGroup registration into PassRegistry.
llvm-svn: 109019
2010-07-21 17:52:45 +00:00
Dan Gohman
77fda3c4aa Delete an obsolete comment.
llvm-svn: 109017
2010-07-21 17:21:27 +00:00
Gabor Greif
4718cad6ce restore aesthetics
llvm-svn: 109001
2010-07-21 08:25:55 +00:00
Evan Cheng
df725c25dd Teach bottom up pre-ra scheduler to track register pressure. Work in progress.
llvm-svn: 108991
2010-07-21 06:09:07 +00:00
Owen Anderson
6265d52037 Move the handling of PassRegistrationListener's to PassRegistry.
llvm-svn: 108966
2010-07-20 23:41:56 +00:00
Greg Clayton
79c7edd75f Added support to MachO.h for many defines and structures that are needed
to Parse mach-o files. All defines have been renamed to not conflict with
#defines in mach header files, all structures were left named the same but
are in the llvm::MachO namespace.

llvm-svn: 108953
2010-07-20 22:36:00 +00:00
Dan Gohman
71724e8c7a Rename removeAllMetadata to clearMetadataHashEntries and simplify
it to just do the things that need to be done when an instruction
is deleted.

llvm-svn: 108948
2010-07-20 22:25:04 +00:00
Jakob Stoklund Olesen
dcf78c06f8 Implement loop splitting analysis.
Determine which loop exit blocks need a 'pre-exit' block inserted.
Recognize when this would be impossible.

llvm-svn: 108941
2010-07-20 21:46:58 +00:00
Dan Gohman
5bb3ce490d Remove an obsolete comment.
llvm-svn: 108940
2010-07-20 21:45:17 +00:00
Dan Gohman
b9a28557ea Add support for remapping metadata kind IDs when reading in a
bitcode file, so that two bitcode files where the same metadata kind
name happens to have been assigned a different ID can still be
linked together.

Eliminate the restriction that metadata kind IDs can't be 0.

Change MD_dbg from 1 to 0, because we can now, and because it's
less mysterious that way.

llvm-svn: 108939
2010-07-20 21:42:28 +00:00
Owen Anderson
2aafb91721 Move more functionality from Pass.cpp to PassRegistry.cpp. This global will go away eventually, but for now we still need it around.
llvm-svn: 108932
2010-07-20 21:22:24 +00:00
Eric Christopher
3ae12eb078 Formatting.
llvm-svn: 108926
2010-07-20 21:05:58 +00:00
Matt Fleming
b1d00d7c93 Add the rest of the SHT_* values as defined in the System V ABI
ELF specification.

llvm-svn: 108924
2010-07-20 20:52:18 +00:00
Dan Gohman
09c8c9c77c Remove setDbgMetadata and getDbgMetadata; their users have been
replaced with setDebugLoc and getDebugLoc.

llvm-svn: 108914
2010-07-20 20:18:21 +00:00
Owen Anderson
6db80f9d90 I just fail with SVN today.
llvm-svn: 108888
2010-07-20 19:23:55 +00:00
Owen Anderson
92386f258c Oops.
llvm-svn: 108885
2010-07-20 18:53:25 +00:00
Chris Lattner
1ac58ea0f3 start straightening out libedis's dependencies and make it fit
better in the llvm world.  Among other things, this changes:

1. The guts of libedis are now moved into lib/MC/MCDisassembler
2. llvm-mc now depends on lib/MC/MCDisassembler, not tools/edis,
   so edis and mc don't have to be built in series.
3. lib/MC/MCDisassembler no longer depends on the C api, the C
   API depends on it.
4. Various code cleanup changes. 

There is still a lot to be done to make edis fit with the llvm
design, but this is an incremental step in the right direction.

llvm-svn: 108869
2010-07-20 18:25:19 +00:00
Gabor Greif
1b0b3bc7e0 remove testing cruft, this can be found in unittests/Support/Casting.cpp now
llvm-svn: 108868
2010-07-20 17:20:25 +00:00
Owen Anderson
e5f3371961 Pull out r108755. After offline discussion with Chris, we're going to go a different direction with this.
llvm-svn: 108856
2010-07-20 16:55:05 +00:00
Dan Gohman
0bfc6146bf Make getOrInsertCanonicalInductionVariable guarantee that its
result is a PHINode*.

llvm-svn: 108852
2010-07-20 16:44:52 +00:00
Owen Anderson
5f218b8612 Speculatively revert r108813, in an attempt to get the self-host buildbots working again. I don't see why this patch
would cause them to fail the way they are, but none of the other intervening patches seem likely either.

llvm-svn: 108818
2010-07-20 08:26:15 +00:00
Eric Christopher
71a1a1a937 Grammar.
llvm-svn: 108814
2010-07-20 06:56:13 +00:00
Owen Anderson
cf625d0179 Reapply r108794, a fix for the failing test from last time.
llvm-svn: 108813
2010-07-20 06:52:42 +00:00
Eric Christopher
ff47f8d94f Constify some arguments.
llvm-svn: 108812
2010-07-20 06:52:21 +00:00
Daniel Dunbar
3280e3aebf Revert r108794, "Separate PassInfo into two classes: a constructor-free
superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is
breaking teh everything.

llvm-svn: 108805
2010-07-20 03:06:07 +00:00
Owen Anderson
3502f9a91b Separate PassInfo into two classes: a constructor-free superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).
llvm-svn: 108794
2010-07-20 01:19:58 +00:00
Stuart Hastings
587ed4918c Correct line info for declarations/definitions. Radar 8063111.
llvm-svn: 108784
2010-07-19 23:56:30 +00:00
Evan Cheng
b2ad0066f5 ARM has to provide its own TargetLowering::findRepresentativeClass because its scalar floating point registers alias its vector registers.
llvm-svn: 108761
2010-07-19 22:15:08 +00:00
Owen Anderson
522ef60c01 Change the implemented interfaces list on PassInfo from a std::vector to a manually implemented
linked list.  This is a little slower and involves more malloc'ing, but these lists are
typically short, and it allows PassInfo to be entirely constant initializable.

llvm-svn: 108755
2010-07-19 21:44:48 +00:00
Owen Anderson
7fa1f7a769 Regenerate.
llvm-svn: 108738
2010-07-19 19:24:55 +00:00
Evan Cheng
cecae7f56c Teach computeRegisterProperties() to compute "representative" register class for legal value types. A "representative" register class is the largest legal super-reg register class for a value type. e.g. On i386, GR32 is the rep register class for i8 / i16 / i32; on x86_64 it would be GR64.
This property will be used by the register pressure tracking instruction scheduler.

llvm-svn: 108735
2010-07-19 18:47:01 +00:00
Duncan Sands
7439f193bb Expose BasicBlock::moveBefore and moveAfter in C API, patch
by Benjamin Saunders.

llvm-svn: 108699
2010-07-19 15:31:07 +00:00
Lang Hames
304ecc0487 Render MachineFunctions to HTML pages, with options to render register
pressure estimates and liveness alongside.

Still experimental.

llvm-svn: 108698
2010-07-19 15:22:28 +00:00
Duncan Sands
dcdd9f3a78 Expose JIT::recompileAndRelinkFunction for use through the C API.
Patch by Benjamin Saunders.

llvm-svn: 108690
2010-07-19 09:33:13 +00:00
Michael J. Spencer
be36f07b08 MC: Add WinCOFFStreamer implementation and merge common code from MachO
into MCObjectStreamer.

Origonal Windows COFF implementation by Nathan Jedffords.

llvm-svn: 108678
2010-07-19 06:13:10 +00:00
Daniel Dunbar
f58b5d7ad0 TblGen/AsmMatcher: Add support for honoring instruction Requires<[]> attributes as part of the matcher.
- Currently includes a hack to limit ourselves to "In32BitMode" and "In64BitMode", because we don't have the other infrastructure to properly deal with setting SSE, etc. features on X86.

llvm-svn: 108677
2010-07-19 05:44:09 +00:00
Mikhail Glushenkov
9b60f2b865 llvmc: Add a new option type (switch_list).
llvm-svn: 108673
2010-07-19 03:16:25 +00:00
Daniel Dunbar
150021561c Target: Give the TargetAsmParser access to the TargetMachine.
- Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this.

llvm-svn: 108664
2010-07-19 00:33:49 +00:00
Daniel Dunbar
5b6b28e897 MC/AsmParser: Stop playing unsafe member function pointer calls, this isn't
portable enough.
 - Downside is we now double dispatch through a stub function, but this isn't
   performance critical.

llvm-svn: 108661
2010-07-18 22:22:07 +00:00
Daniel Dunbar
79350dba6e MC/AsmParser: Fix .abort and .secure_log_unique to accept arbitrary token
sequences, not just strings.

llvm-svn: 108655
2010-07-18 20:15:59 +00:00
Daniel Dunbar
2b388a1255 MC/AsmParser: Fix TokError() to accept a Twine.
llvm-svn: 108647
2010-07-18 18:31:42 +00:00
Daniel Dunbar
9a7d4a5dee MC/AsmParser: Hide the AsmParser implementation.
llvm-svn: 108646
2010-07-18 18:31:38 +00:00
Lang Hames
ac3a879f12 Switched to array_pod_sort as per Chris's suggestion.
llvm-svn: 108616
2010-07-17 09:21:53 +00:00
Lang Hames
48638f63ba LoopSplitter - intended to split live intervals over loop boundaries.
Still very much under development. Comments and fixes will be forthcoming.

(This commit includes some small tweaks to LiveIntervals & LoopInfo to support the splitter)

llvm-svn: 108615
2010-07-17 07:34:01 +00:00
Daniel Dunbar
4dca88a1e9 MC/AsmParser: Lift Run() and TargetParser to base class.
Also, add constructor function for creating AsmParser instances.

llvm-svn: 108604
2010-07-17 02:26:10 +00:00
Eric Christopher
b397b001b9 Propagate alloca alignment information via variable size object frame
information.

No functional change yet.

llvm-svn: 108583
2010-07-17 00:28:22 +00:00
Jakob Stoklund Olesen
44949b2e1b Remove the isMoveInstr() hook.
llvm-svn: 108567
2010-07-16 22:35:46 +00:00
Bill Wendling
e2833a21c2 Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and
thus is a much more meaningful name.

llvm-svn: 108563
2010-07-16 22:20:36 +00:00
Jakob Stoklund Olesen
1fb08e33b9 Remove remaining calls to TII::isMoveInstr.
llvm-svn: 108556
2010-07-16 21:03:55 +00:00
Chris Lattner
663dd0eb36 eliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext,
so there is no locking involved in type refinement.

llvm-svn: 108553
2010-07-16 20:50:13 +00:00
Dan Gohman
444c76a3b1 Revert r108369, sorting llvm.dbg.declare information by source position,
since it doesn't work for front-ends which don't emit column information
(which includes llvm-gcc in its present configuration), and doesn't
work for clang for K&R style variables where the variables are declared
in a different order from the parameter list.

Instead, make a separate pass through the instructions to collect the
llvm.dbg.declare instructions in order. This ensures that the debug
information for variables is emitted in this order.

llvm-svn: 108538
2010-07-16 17:54:27 +00:00
Douglas Gregor
9101acaab9 Remove extraneous semicolons after member functions
llvm-svn: 108525
2010-07-16 15:03:23 +00:00
Gabor Greif
17c48ecd68 eliminate CallInst::ArgOffset
llvm-svn: 108522
2010-07-16 09:38:02 +00:00