Daniel Dunbar [Thu, 27 Aug 2009 08:17:51 +0000 (08:17 +0000)]
llvm-mc/Mach-O: Add MCCodeEmitter support, for encoding instructions.
- No relocations yet, of course.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80235
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 08:12:55 +0000 (08:12 +0000)]
llvm-mc/X86: Implement single instruction encoding interface for MC.
- Note, this is a gigantic hack, with the sole purpose of unblocking further
work on the assembler (its also possible to test the mathcer more completely
now).
- Despite being a hack, its actually good enough to work over all of 403.gcc
(although some encodings are probably incorrect). This is a testament to the
beauty of X86's MachineInstr, no doubt! ;)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80234
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 07:58:57 +0000 (07:58 +0000)]
llvm-mc: Print encodings after the instruction, and only when we have an asm
printer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80233
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 07:58:05 +0000 (07:58 +0000)]
X86: Mark EH_RETURN as code-gen-only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80232
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 07:57:12 +0000 (07:57 +0000)]
Add {MCInst,MCOperand}::{print,dump}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80231
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 07:56:39 +0000 (07:56 +0000)]
llvm-mc: Only show instruction encodings with --show-encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80230
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 27 Aug 2009 06:59:20 +0000 (06:59 +0000)]
the buildbots revealed one more breakage. fix. (why didn't I see this?)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80227
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 27 Aug 2009 06:41:46 +0000 (06:41 +0000)]
Clean up the minor mess I caused with removing iterator.h. I shall take care of 80-col violations and the FIXME later. (Thanks goodness that I live in another continent, so the monkeypox did not strike me :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80224
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Aug 2009 06:29:33 +0000 (06:29 +0000)]
Implement a new optimization in the inliner: if inlining multiple
calls into a function and if the calls bring in arrays, try to merge
them together to reduce stack size. For example, in the testcase
we'd previously end up with 4 allocas, now we end up with 2 allocas.
As described in the comments, this is not really the ideal solution
to this problem, but it is surprisingly effective. For example, on
176.gcc, we end up eliminating 67 arrays at "gccas" time and another
24 at "llvm-ld" time.
One piece of concern that I didn't look into: at -O0 -g with
forced inlining this will almost certainly result in worse debug
info. I think this is acceptable though given that this is a case
of "debugging optimized code", and we don't want debug info to
prevent the optimizer from doing things anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80215
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Aug 2009 06:20:45 +0000 (06:20 +0000)]
the inliner shouldn't crash on this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80214
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 06:11:15 +0000 (06:11 +0000)]
For now, only run MC tests if X86 is configured.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80213
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 27 Aug 2009 05:49:50 +0000 (05:49 +0000)]
This is passing for PPC on Mac OS X.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80210
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 27 Aug 2009 05:35:28 +0000 (05:35 +0000)]
Revert accidental commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80208
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Aug 2009 04:43:05 +0000 (04:43 +0000)]
unbreak the build, yay for symlinks + makefiles. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80205
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Aug 2009 04:32:07 +0000 (04:32 +0000)]
reduce header #include'age
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80204
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Aug 2009 04:20:52 +0000 (04:20 +0000)]
enhance InlineFunction to be able to optionally return
a the list of static allocas that it inlined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80203
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Aug 2009 04:02:30 +0000 (04:02 +0000)]
smallvectorize the list of returns built by CloneAndPruneFunctionInto.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80202
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Aug 2009 03:56:43 +0000 (03:56 +0000)]
remove CloneTrace, which appears to be dead since 2004.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80201
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Aug 2009 03:51:50 +0000 (03:51 +0000)]
reduce inlining factor some stuff out to a static helper function,
and other code cleanups. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80199
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 27 Aug 2009 03:32:50 +0000 (03:32 +0000)]
Revert accidental commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80198
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 27 Aug 2009 03:29:26 +0000 (03:29 +0000)]
--- 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
Dan Gohman [Thu, 27 Aug 2009 02:43:49 +0000 (02:43 +0000)]
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
Daniel Dunbar [Thu, 27 Aug 2009 02:08:37 +0000 (02:08 +0000)]
Update CMake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80195
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 01:34:22 +0000 (01:34 +0000)]
llvm-mc: Tweak MCCodeEmitter skeleton.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80193
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 Aug 2009 01:25:57 +0000 (01:25 +0000)]
Initialize the PoisonMemory member before initializing
members that call methods that read the PoisonMemory member.
This fixes potential spurious (though probably otherwise
harmless) poising of unused memory, and fixes the
associated valgrind error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80192
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 27 Aug 2009 01:23:50 +0000 (01:23 +0000)]
Fix PR4789. Teach eliminateFrameIndex how to handle VLDRQ and VSTRQ which cannot fold any immediate offset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80191
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 01:15:54 +0000 (01:15 +0000)]
Add missing declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80190
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 00:51:57 +0000 (00:51 +0000)]
Sketch TargetRegistry support for MCCodeEmitter abstract interface.
- Of course, nothing actually can provide this interface yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80188
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 27 Aug 2009 00:38:04 +0000 (00:38 +0000)]
Try to make MSVC just a little happier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80187
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 Aug 2009 00:31:47 +0000 (00:31 +0000)]
X86FastISel support for loading and storing values of type i1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80186
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 27 Aug 2009 00:14:12 +0000 (00:14 +0000)]
Expand i8 selects into control flow instead of 16-bit conditional
moves. This avoids the need to promote the operands (or implicitly
extend them, a partial register update condition), and can reduce
i8 register pressure. This substantially speeds up code such as
write_hex in lib/Support/raw_ostream.cpp.
subclass-coalesce.ll is too trivial and no longer tests what it was
originally intended to test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80184
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 26 Aug 2009 23:35:33 +0000 (23:35 +0000)]
now that include/llvm/ADT/iterator.h.in is not attempted to be built, its prerequisite can go away too
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80180
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 23:12:33 +0000 (23:12 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80176
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 26 Aug 2009 22:59:05 +0000 (22:59 +0000)]
Regenerate configure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80173
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 26 Aug 2009 22:55:19 +0000 (22:55 +0000)]
eliminate references to ADT/iterator.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80171
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 26 Aug 2009 22:55:11 +0000 (22:55 +0000)]
Make this into a static method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80170
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 26 Aug 2009 22:50:39 +0000 (22:50 +0000)]
Fix bad length argument to substr calls. Apparently I'm the first one to
attempt more than 2 constraints on an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80169
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 22:49:51 +0000 (22:49 +0000)]
llvm-mc/Mach-O: Unique sections properly, so we don't get duplicate text
sections, etc.
- The quick and dirty way, just clone the TargetLoweringObjectFile
code. Eventually this should be shared... somehow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80168
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 22:13:22 +0000 (22:13 +0000)]
llvm-mc/Mach-O: Don't put assembler temporary labels in the symbol table.
- I moved section creation back into AsmParser. I think policy decisions like
this should be pushed higher, not lower, when possible (in addition the
assembler has flags which change this behavior, for example).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80162
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 26 Aug 2009 22:12:02 +0000 (22:12 +0000)]
De-bork CMake build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80161
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 26 Aug 2009 21:44:57 +0000 (21:44 +0000)]
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
Gabor Greif [Wed, 26 Aug 2009 21:36:59 +0000 (21:36 +0000)]
nobody includes llvm/ADT/iterator.h any more,
so get rid of this monstrosity. iterator.h.in is scheduled for deletion in my working copy,
but I wait till I see that configure gets regenerated, as it depends on it. I'll commit
then.
There are still some AC_* tests in the configure.ac dealing with iterators, those can
be zapped probably too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80147
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 26 Aug 2009 21:30:49 +0000 (21:30 +0000)]
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
Eric Christopher [Wed, 26 Aug 2009 21:27:09 +0000 (21:27 +0000)]
Nuke trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80145
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 21:22:22 +0000 (21:22 +0000)]
llvm-mc/Mach-O: Set .subsections_via_symbols flag properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80144
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 26 Aug 2009 21:00:34 +0000 (21:00 +0000)]
Don't submit test directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80139
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 26 Aug 2009 20:58:25 +0000 (20:58 +0000)]
Allocate the module provider in the Kaleidoscope code on the heap, not the stack, so that it can be properly deleted. Also update the tutorial with the new code. This fixes PR4762, hopefully better than the last time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80138
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 26 Aug 2009 19:16:32 +0000 (19:16 +0000)]
Remove all the LLVM_COMPACTIFY_SENTINELS-related macro magic as discussed with Chris on IRC. Anybody wanting to debug sentinel dereferencing problems must revert this patch and perform the indicated modifications.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80128
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Wed, 26 Aug 2009 18:37:05 +0000 (18:37 +0000)]
CMake: Removed outdated TODO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80124
91177308-0d34-0410-b5e6-
96231b3b80d8
Venkatraman Govindaraju [Wed, 26 Aug 2009 18:24:12 +0000 (18:24 +0000)]
Generate section for bss and enable weak symbols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80121
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 26 Aug 2009 18:11:50 +0000 (18:11 +0000)]
Convert some more Neon tests to FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80120
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 26 Aug 2009 18:10:32 +0000 (18:10 +0000)]
Alter 79292 to produce output that actually assembles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80119
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 26 Aug 2009 18:02:19 +0000 (18:02 +0000)]
Allow unsigned long long DenseMapInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80118
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 26 Aug 2009 17:39:53 +0000 (17:39 +0000)]
Remove unneeded ARM-specific DAG nodes for VLD* and VST* Neon operations.
The instructions can be selected directly from the intrinsics. We will need
to add some ARM-specific nodes for VLD/VST of 3 and 4 128-bit vectors, but
those are not yet implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80117
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 26 Aug 2009 17:39:40 +0000 (17:39 +0000)]
Add extload expansion for f128
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80116
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 26 Aug 2009 17:39:23 +0000 (17:39 +0000)]
Unbreak FP128 stuff in cbe
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80115
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Wed, 26 Aug 2009 17:05:06 +0000 (17:05 +0000)]
Ignore -fPIC test on Windows. Suggested by Yonggang Luo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80111
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 26 Aug 2009 16:33:57 +0000 (16:33 +0000)]
Unbreak CMake build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80109
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 26 Aug 2009 16:26:09 +0000 (16:26 +0000)]
Expand scalar_to_vector - we don't have any isel logic for it now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80107
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 Aug 2009 16:06:11 +0000 (16:06 +0000)]
Add comments detailing a known bug, so that people writing other
backends don't use it as an example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80105
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 Aug 2009 15:57:57 +0000 (15:57 +0000)]
-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
Dan Gohman [Wed, 26 Aug 2009 15:56:38 +0000 (15:56 +0000)]
Move ProfileInfo::Edge's operator<< out of line. Among other benefits,
this eliminates the ATTRIBUTE_USED, which wasn't being used in a manner
acceptable to some GCC versions, according to the buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80103
91177308-0d34-0410-b5e6-
96231b3b80d8
Andreas Neustifter [Wed, 26 Aug 2009 15:18:38 +0000 (15:18 +0000)]
Bugfix for r80100, forgot include. Sorry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80101
91177308-0d34-0410-b5e6-
96231b3b80d8
Andreas Neustifter [Wed, 26 Aug 2009 15:13:44 +0000 (15:13 +0000)]
Implemented comments from Daniel Dunbar.
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-
20090817/084958.html)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80100
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 Aug 2009 14:59:13 +0000 (14:59 +0000)]
Don't use INSERT_SUBREG to model anyext operations on x86-64, as it
leads to partial-register definitions. To help avoid redundant
zero-extensions, also teach the h-register matching patterns that
use movzbl to match anyext as well as zext.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80099
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 Aug 2009 14:53:06 +0000 (14:53 +0000)]
Create a ScalarEvolution-based AliasAnalysis implementation.
This is a simple AliasAnalysis implementation which works by making
ScalarEvolution queries. ScalarEvolution has a more complete understanding
of arithmetic than BasicAA's collection of ad-hoc checks, so it handles
some cases that BasicAA misses, for example p[i] and p[i+1] within the
same iteration of a loop.
This is currently experimental. It may be that the main use for this pass
will be to help find cases where BasicAA can be profitably extended, or
to help in the development of the overall AliasAnalysis infrastructure,
however it's also possible that it could grow up to become a directly
useful pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80098
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 Aug 2009 14:34:12 +0000 (14:34 +0000)]
Fix a missing newline, now that Value's operator<< doesn't add one of its own.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80096
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 Aug 2009 14:32:17 +0000 (14:32 +0000)]
Use SetVector instead of std::set so that alias relations are tested and
printed in a deterministic order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80095
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 13:58:10 +0000 (13:58 +0000)]
llvm-mc/Mach-O: Add support for relocations.
- I haven't really tried to find the "right" way to store the fixups or apply
them, yet. This works, but isn't particularly elegant or fast.
- Still no evaluation support, so we don't actually ever not turn a fixup into
a relocation entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80089
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 13:57:54 +0000 (13:57 +0000)]
llvm-mc/Mach-O: Move symbol indices into the MCSymbolData structure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80088
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 13:57:44 +0000 (13:57 +0000)]
llvm-mc/Mach-O: Dump relocations and section data (optionally) in my Mach-O dumper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80087
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 13:57:37 +0000 (13:57 +0000)]
llvm-mc: Add symbol entries for undefined symbols used in .fill and .org.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80086
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 26 Aug 2009 13:44:29 +0000 (13:44 +0000)]
Add dummy inline asm handling for 'r' constraint. This fixes PR4778
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80085
91177308-0d34-0410-b5e6-
96231b3b80d8
Andreas Neustifter [Wed, 26 Aug 2009 13:33:09 +0000 (13:33 +0000)]
Moved isDeclaration() check further down to allow for function counts for
declarations if necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80084
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 09:16:57 +0000 (09:16 +0000)]
llvm-mc: Change MCContext value table to take const MCSymbol*s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80079
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 09:16:46 +0000 (09:16 +0000)]
llvm-mc: Make MCValue take const MCSymbol*s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80078
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 09:16:34 +0000 (09:16 +0000)]
llvm-mc: Make non-sensical max bytes to .align an error.
Also, warn about overflow in alignment values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80077
91177308-0d34-0410-b5e6-
96231b3b80d8
Andreas Neustifter [Wed, 26 Aug 2009 09:05:21 +0000 (09:05 +0000)]
Changed std::cout to outs(), retaining formating.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80076
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 Aug 2009 05:01:18 +0000 (05:01 +0000)]
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
Chris Lattner [Wed, 26 Aug 2009 05:00:16 +0000 (05:00 +0000)]
some mips and some sparc compilers apparently
predefine mips and sparc respectively. Just overrule them :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80072
91177308-0d34-0410-b5e6-
96231b3b80d8
Venkatraman Govindaraju [Wed, 26 Aug 2009 04:50:17 +0000 (04:50 +0000)]
test commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80070
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 04:28:45 +0000 (04:28 +0000)]
llvm-mc: Fix tests for python variations in int printing, sigh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80069
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 26 Aug 2009 04:21:30 +0000 (04:21 +0000)]
fix some funky indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80068
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 04:13:32 +0000 (04:13 +0000)]
llvm-mc/Mach-O: Add section padding where needed (to align the next section).
Also, simplify some of Mach-O writer code which can now use section addresses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80067
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 02:48:04 +0000 (02:48 +0000)]
llvm-mc/Mach-O: Set addresses for symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80065
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 26 Aug 2009 01:08:21 +0000 (01:08 +0000)]
Add an 'inline hint' attribute to represent source
code hints that it would be a good idea to inline
a function ("inline" keyword). No functional change
yet; FEs do not emit this and inliner does not use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80063
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 Aug 2009 00:39:50 +0000 (00:39 +0000)]
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
Daniel Dunbar [Wed, 26 Aug 2009 00:18:21 +0000 (00:18 +0000)]
llvm-mc: Improve indirect symbol support (add the indirect index table).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80059
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 26 Aug 2009 00:13:22 +0000 (00:13 +0000)]
Remove unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80058
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 26 Aug 2009 00:10:55 +0000 (00:10 +0000)]
llvm-mc: Add MCSection::isDefined()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80057
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 Aug 2009 23:27:45 +0000 (23:27 +0000)]
Fix the InsertAtEnd form of ShuffleVectorInst constructor to use
the correct type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80050
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 Aug 2009 23:17:54 +0000 (23:17 +0000)]
Eliminate the unused Context argument on one of the ICmpInst and FCmpInst
constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80049
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 25 Aug 2009 23:02:21 +0000 (23:02 +0000)]
revert r78628 and r78803 as these are not needed any more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80048
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Michel [Tue, 25 Aug 2009 22:37:34 +0000 (22:37 +0000)]
Updated i128 sext support for CellSPU backend, contributed by Ken Werner (IBM)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80042
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 Aug 2009 22:29:08 +0000 (22:29 +0000)]
Use covariant return types for Instruction::clone, and eliminate
the forms of ExtractElementInst and InsertElementInst that are
equivalent to clone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80041
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 25 Aug 2009 22:27:22 +0000 (22:27 +0000)]
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
Dan Gohman [Tue, 25 Aug 2009 22:24:20 +0000 (22:24 +0000)]
This should use isIndenticalToWhenDefined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80039
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 25 Aug 2009 22:11:20 +0000 (22:11 +0000)]
Rename Instruction::isIdenticalTo to Instruction::isIdenticalToWhenDefined,
and introduce a new Instruction::isIdenticalTo which tests for full
identity, including the SubclassOptionalData flags. Also, fix the
Instruction::clone implementations to preserve the SubclassOptionalData
flags. Finally, teach several optimizations how to handle
SubclassOptionalData correctly, given these changes.
This fixes the counterintuitive behavior of isIdenticalTo not comparing
the full value, and clone not returning an identical clone, as well as
some subtle bugs that could be caused by these.
Thanks to Nick Lewycky for reporting this, and for an initial patch!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80038
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 25 Aug 2009 21:31:39 +0000 (21:31 +0000)]
Revert last patch. We need to put this into TargetLowering. There will be a lot
of EH stuff going into there, so we can wait to add them all then.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80036
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 25 Aug 2009 21:25:22 +0000 (21:25 +0000)]
re-committing yesterday's r79938.
This time there is no additional include of llvm/Config/config.h
at all. Instead I use a hard-coded preprecessor symbol:
LLVM_COMPACTIFY_SENTINELS
(should this work on the self-hosting buildbot, then
cleanups come next)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80035
91177308-0d34-0410-b5e6-
96231b3b80d8