Chris Lattner
1af5af8640
Use more terse and precise linkage checks.
...
llvm-svn: 76237
2009-07-17 21:00:50 +00:00
Dan Gohman
58b0e71886
Eliminate yet another copy of getOpcode.
...
llvm-svn: 76236
2009-07-17 20:58:59 +00:00
Daniel Dunbar
ce77aa04bb
Fix typo
...
llvm-svn: 76235
2009-07-17 20:56:18 +00:00
Chris Lattner
e03a866b34
these two pieces of code are the same because we always
...
emit the EHFrame label next to the section_eh_frame and
eh_frame_common labels.
llvm-svn: 76234
2009-07-17 20:53:51 +00:00
Dan Gohman
510fdfd92e
Fix a typo that Duncan spotted.
...
llvm-svn: 76233
2009-07-17 20:51:47 +00:00
Dan Gohman
80ca01c466
Add a new Operator class, for handling Instructions and ConstantExprs
...
in a convenient manner, factoring out some common code from
InstructionCombining and ValueTracking. Move the contents of
BinaryOperators.h into Operator.h and use Operator to generalize them
to support ConstantExprs as well as Instructions.
llvm-svn: 76232
2009-07-17 20:47:02 +00:00
Chris Lattner
e79b2bc088
Untangle a snarl that I discovered when updating the mangler,
...
starting in getCurrentFunctionEHName. Among other problems,
we would try to privative a "foo.eh" label, but end up emitting
the label as _Lfoo.eh instead of L_foo.eh on darwin. This is really
bad, and the linker has always tolerated these labels existing.
For now, just emit them as _foo.eh.
This patch also fixes problems with ".eh" labels on unnamed
functions and eliminates two strangely defined TargetAsmInfo
hooks.
llvm-svn: 76231
2009-07-17 20:46:40 +00:00
Daniel Dunbar
71475775b9
Sketch support for target specific assembly parser.
...
- Not fully enabled yet, need a configure regeneration.
llvm-svn: 76230
2009-07-17 20:42:00 +00:00
Mikhail Glushenkov
28309ac04c
Trailing whitespace.
...
llvm-svn: 76229
2009-07-17 20:38:17 +00:00
Chris Lattner
7a7cd9294d
fix include guard.
...
llvm-svn: 76228
2009-07-17 20:32:07 +00:00
Evan Cheng
f08b003bf0
Simplify the coalescer (finally!) by making LiveIntervals::processImplicitDefs a little more aggressive and teaching liveintervals to make use of isUndef marker on MachineOperands.
...
llvm-svn: 76223
2009-07-17 19:43:40 +00:00
Dan Gohman
97190a2c93
GetElementPtr instructions default to having no overflow.
...
llvm-svn: 76222
2009-07-17 19:23:21 +00:00
Xerxes Ranby
64c6d42a9a
Implement cmake LLVM_MULTITHREADED gcc atomic builtin checks.
...
llvm-svn: 76221
2009-07-17 19:22:41 +00:00
Bob Wilson
46f079e33f
Fix a crash in SROA. The FunctionPass::doInitialization method was never
...
being called so that Context was never initialized. I'm not sure if this
is the right fix but at least it keeps opt from crashing.
llvm-svn: 76220
2009-07-17 19:05:13 +00:00
Dan Gohman
e17cf4527c
Define a no-pointer-overflow flag for GetElementPtr instructions.
...
llvm-svn: 76218
2009-07-17 19:01:15 +00:00
Dan Gohman
23131ccffc
Add new classes for working with optional optimization data
...
for binary operators Add, Sub, Mul, and UDiv.
llvm-svn: 76217
2009-07-17 18:59:51 +00:00
Anton Korobeynikov
9750be9776
Fix copy & paste errors
...
llvm-svn: 76216
2009-07-17 18:57:16 +00:00
Dan Gohman
2035302038
Add a method to clear optional optimization information from a Value.
...
llvm-svn: 76215
2009-07-17 18:56:23 +00:00
Anton Korobeynikov
08c08870f9
Add missed attributes to C bindings
...
llvm-svn: 76214
2009-07-17 18:55:30 +00:00
Daniel Dunbar
bdffb1a333
Start generating AsmMatcher.inc for X86.
...
llvm-svn: 76213
2009-07-17 18:55:26 +00:00
Daniel Dunbar
e2eec05e60
tblgen/AsmMatcher: Emit simple matcher for register names.
...
llvm-svn: 76212
2009-07-17 18:51:11 +00:00
Jeffrey Yasskin
15d54b9504
r76102 added the MachineCodeEmitter::processDebugLoc call and called it from
...
the X86 Emitter. This patch extends that to the rest of the targets that can
write to a MachineCodeEmitter: ARM, Alpha, and PPC.
llvm-svn: 76211
2009-07-17 18:49:39 +00:00
Daniel Dunbar
e974dc3eb1
Fix compile warning.
...
llvm-svn: 76210
2009-07-17 18:33:52 +00:00
Anton Korobeynikov
acd2f4dcea
Add missed return
...
llvm-svn: 76209
2009-07-17 18:28:59 +00:00
Daniel Dunbar
41f9a3afdb
opt: Add -std-link-opts argument, matches llvm-ld's optimizations.
...
llvm-svn: 76199
2009-07-17 18:09:39 +00:00
Anton Korobeynikov
c8ce7b08ba
Add support for naked functions
...
llvm-svn: 76198
2009-07-17 18:07:26 +00:00
Chris Lattner
52d436e98b
rename test.
...
llvm-svn: 76197
2009-07-17 18:05:55 +00:00
Bruno Cardoso Lopes
0cded73755
revert one of the loops to use indicies over iterators because there are vector insertions inside the loop
...
llvm-svn: 76195
2009-07-17 18:02:30 +00:00
Dan Gohman
9691e71a4f
Add a SubclassOptionalData field to Value. See the doxygen comment for
...
details.
llvm-svn: 76189
2009-07-17 17:16:59 +00:00
Daniel Dunbar
412e4fc5a1
Fix typo.
...
llvm-svn: 76186
2009-07-17 16:41:57 +00:00
Daniel Dunbar
482bd9dcb8
Initialize another Context, in the hopes of unbreaking CBE.
...
llvm-svn: 76184
2009-07-17 16:20:23 +00:00
Dan Gohman
ce51c29bca
Fix an apparent typo.
...
llvm-svn: 76183
2009-07-17 16:12:36 +00:00
David Greene
d3d52aabdf
Make DOUT an lvalue in release mode so that developers may use DOUT in
...
their code in release mode. This helps to debug release-mode problems.
llvm-svn: 76182
2009-07-17 15:55:53 +00:00
Daniel Dunbar
50745bf080
Provide slightly more refined error message when trying to lookup a target, and
...
none are registered.
llvm-svn: 76181
2009-07-17 15:50:49 +00:00
David Greene
33d1e7db01
Add logic to align instruction operands to columns for pretty-printing.
...
No target uses this currently. This patch only adds the mechanism so
that local installations can choose to enable this.
llvm-svn: 76177
2009-07-17 14:24:46 +00:00
Duncan Sands
35e95639c0
Avoid a compiler warning when assertions are turned off.
...
llvm-svn: 76176
2009-07-17 12:25:14 +00:00
Duncan Sands
520024b465
Testcase for PR4214.
...
llvm-svn: 76174
2009-07-17 11:44:20 +00:00
Eli Friedman
ce343d2103
Documentation clarifications for isSafeToSpeculativelyExecute.
...
llvm-svn: 76168
2009-07-17 08:38:29 +00:00
Eli Friedman
fab6cbe6cd
Oops, accidentally set a legal operation to expand.
...
llvm-svn: 76165
2009-07-17 07:34:23 +00:00
Eli Friedman
6a60a66b2b
Expand misc operations from test/CodeGen/Generic.
...
llvm-svn: 76163
2009-07-17 07:28:06 +00:00
Eli Friedman
efa2215e30
Handle void in XCoreTargetLowering::isLegalAddressingMode. Triggers in
...
test/CodeGen/Generic.
llvm-svn: 76162
2009-07-17 07:16:38 +00:00
Eli Friedman
836024d76d
Remove some unnecessary expansion markings. Add a few expansion
...
markings that show up in test/CodeGen/Generic.
llvm-svn: 76160
2009-07-17 07:03:00 +00:00
Eli Friedman
aeb44a31f6
Add operation expansion/promotion for a bunch of operations, many of
...
which show up in test/CodeGen/Generic.
llvm-svn: 76158
2009-07-17 06:36:24 +00:00
Nick Lewycky
d562ab1cfd
Add broken gcc from PR4532.
...
llvm-svn: 76157
2009-07-17 06:32:10 +00:00
Evan Cheng
aaf48343fb
Fix tSUBspi operand definition. It reads and writes sp, which is a high register.
...
llvm-svn: 76155
2009-07-17 05:43:12 +00:00
Eli Friedman
f840bc561a
Set an operation expansion, noticed while running
...
llc over test/CodeGen/Generic with -march=alpha.
llvm-svn: 76154
2009-07-17 05:23:03 +00:00
Eli Friedman
97f3f965eb
Make promotion in operation legalization for SETCC work correctly.
...
llvm-svn: 76153
2009-07-17 05:16:04 +00:00
Eli Friedman
b8f6a4fc8e
Replace isTrapping with a new, similar method called
...
isSafeToSpeculativelyExecute. The new method is a bit closer to what
the callers actually care about in that it rejects more things callers
don't want. It also adds more precise handling for integer
division, and unifies code for analyzing the legality of a speculative
load.
llvm-svn: 76150
2009-07-17 04:28:42 +00:00
Eli Friedman
1fa07e1aea
One more operation expansion for MIPS, from test/CodeGen/Generic.
...
llvm-svn: 76149
2009-07-17 04:07:24 +00:00
Daniel Dunbar
d0ed53e711
Make sure CWriter's Context get's initialized.
...
llvm-svn: 76147
2009-07-17 03:43:21 +00:00
Eli Friedman
39d6faa31e
Expand a bunch of illegal operations on MIPS (found by
...
inspection and running over CodeGen/Generic).
llvm-svn: 76146
2009-07-17 02:28:12 +00:00
Daniel Dunbar
7ecc62d8c1
Fix 'may be used uninitialized' warning.
...
- Anton, please review.
llvm-svn: 76144
2009-07-17 02:19:26 +00:00
Dan Gohman
842e144922
Add the private keyword to the polygen grammar.
...
llvm-svn: 76135
2009-07-17 01:07:45 +00:00
Dan Gohman
32c5428590
Add the private keyword to the VIM syntax highlighting.
...
llvm-svn: 76134
2009-07-17 01:06:53 +00:00
Evan Cheng
76b561dd70
Fix my brain cramp by inverting the assertion condition.
...
llvm-svn: 76131
2009-07-17 00:32:06 +00:00
Jeffrey Yasskin
062853552e
Fix "no newline at end of file" warning from gcc.
...
llvm-svn: 76127
2009-07-16 23:58:14 +00:00
Owen Anderson
4118ddeeed
Privatize the MDNode uniquing table.
...
llvm-svn: 76126
2009-07-16 23:44:30 +00:00
Anton Korobeynikov
c5df7e2dc1
Emit cross regclass register moves for thumb2.
...
Minor code duplication cleanup.
llvm-svn: 76124
2009-07-16 23:26:06 +00:00
Daniel Dunbar
f60abdbb5a
Disable this assert for now, it is firing on an llvm-gcc bootstrap. :(
...
llvm-svn: 76123
2009-07-16 23:02:46 +00:00
Bill Wendling
e6fc4d6994
Add new flags '-test-cflags' and '-test-cxxflags' to pass in flags directly to the llvm testsuite.
...
llvm-svn: 76122
2009-07-16 22:59:17 +00:00
Evan Cheng
02a765280f
GV with ghost linkage (module being lazily streamed in in JIT lazy compilation mode) do not require extra load from stub. This fixes ExecutionEngine/2005-12-02-TailCallBug.ll.
...
llvm-svn: 76121
2009-07-16 22:53:10 +00:00
Dale Johannesen
c4148c4ec7
Assume an inline asm might be a call, so we get
...
stack alignment right when it is. This is not
ideal but conservatively correct. Adjust a test
to compensate for changed stack offset value.
gcc.apple/asm-block-57.c
llvm-svn: 76120
2009-07-16 22:34:45 +00:00
David Greene
de9cd44ed8
Emit line numbers in asm comments when available.
...
llvm-svn: 76117
2009-07-16 22:24:20 +00:00
Owen Anderson
69ab416d66
Privatize the MDString uniquing table.
...
llvm-svn: 76113
2009-07-16 22:11:26 +00:00
Daniel Dunbar
87b85dd4dc
Fix inverted preprocessor conditional.
...
llvm-svn: 76111
2009-07-16 22:08:25 +00:00
Daniel Dunbar
bfc2d8e5de
Fix compiler warning (for -Asserts).
...
llvm-svn: 76110
2009-07-16 22:06:22 +00:00
Jakob Stoklund Olesen
c7895d3cf6
Silence warning in Linux builds:
...
X86InstrInfo.cpp:2272: warning: suggest explicit braces to avoid ambiguous 'else'
llvm-svn: 76105
2009-07-16 21:24:13 +00:00
Daniel Dunbar
95a551ad75
Add raw_null_ostream and llvm::nulls(), a raw_ostream that discards output.
...
- No functionality change.
llvm-svn: 76103
2009-07-16 21:17:53 +00:00
Jeffrey Yasskin
efad8e45fe
Add line numbers to OProfile. To do this, I added a processDebugLoc()
...
call to the MachineCodeEmitter interface and made copying the start
line of a function not conditional on whether we're emitting Dwarf
debug information. I'll propagate the processDebugLoc() calls to the
non-X86 targets in a followup patch.
In the long run, it'll probably be better to gather this information
through the DwarfWriter, but the DwarfWriter currently depends on the
AsmPrinter and TargetAsmInfo, and fixing that would be out of the way
for this patch.
There's a bug in OProfile 0.9.4 that makes it ignore line numbers for
addresses above 4G, and a patch fixing it at
http://thread.gmane.org/gmane.linux.oprofile/7634
Sample output:
$ sudo opcontrol --reset; sudo opcontrol --start-daemon; sudo opcontrol --start; `pwd`/Debug/bin/lli fib.bc; sudo opcontrol --stop
Signalling daemon... done
Profiler running.
fib(40) == 165580141
Stopping profiling.
$ opreport -g -d -l `pwd`/Debug/bin/lli|head -60
Overflow stats not available
CPU: Core 2, speed 1998 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
vma samples % linenr info image name symbol name
00007f67a30370b0 25489 61.2554 fib.c:24 10946.jo fib_left
00007f67a30370b0 1634 6.4106 fib.c:24
00007f67a30370b1 83 0.3256 fib.c:24
00007f67a30370b9 1997 7.8348 fib.c:24
00007f67a30370c6 2080 8.1604 fib.c:27
00007f67a30370c8 988 3.8762 fib.c:27
00007f67a30370cd 1315 5.1591 fib.c:27
00007f67a30370cf 251 0.9847 fib.c:27
00007f67a30370d3 1191 4.6726 fib.c:27
00007f67a30370d6 975 3.8252 fib.c:27
00007f67a30370db 1010 3.9625 fib.c:27
00007f67a30370dd 242 0.9494 fib.c:27
00007f67a30370e1 2782 10.9145 fib.c:28
00007f67a30370e5 3768 14.7828 fib.c:28
00007f67a30370eb 615 2.4128 (no location information)
00007f67a30370f3 6558 25.7287 (no location information)
00007f67a3037100 15603 37.4973 fib.c:29 10946.jo fib_right
00007f67a3037100 1646 10.5493 fib.c:29
00007f67a3037101 45 0.2884 fib.c:29
00007f67a3037109 2372 15.2022 fib.c:29
00007f67a3037116 2234 14.3178 fib.c:32
00007f67a3037118 612 3.9223 fib.c:32
00007f67a303711d 622 3.9864 fib.c:32
00007f67a303711f 385 2.4675 fib.c:32
00007f67a3037123 404 2.5892 fib.c:32
00007f67a3037126 634 4.0633 fib.c:32
00007f67a303712b 870 5.5759 fib.c:32
00007f67a303712d 62 0.3974 fib.c:32
00007f67a3037131 1848 11.8439 fib.c:33
00007f67a3037135 2840 18.2016 fib.c:33
00007f67a303713a 1 0.0064 fib.c:33
00007f67a303713b 1023 6.5564 (no location information)
00007f67a3037143 5 0.0320 (no location information)
000000000080c1e4 15 0.0360 MachineOperand.h:150 lli llvm::MachineOperand::isReg() const
000000000080c1e4 6 40.0000 MachineOperand.h:150
000000000080c1ec 2 13.3333 MachineOperand.h:150
...
llvm-svn: 76102
2009-07-16 21:07:26 +00:00
Jakob Stoklund Olesen
070fab8a1f
Teach MachineInstr::isRegTiedToDefOperand() to correctly parse inline asm operands.
...
The inline asm operands must be parsed from the first flag, you cannot assume
that an immediate operand preceeding a register use operand is the flag.
PowerPC "m" operands are represented as (flag, imm, reg) triples.
isRegTiedToDefOperand() would incorrectly interpret the imm as the flag.
llvm-svn: 76101
2009-07-16 20:58:34 +00:00
Evan Cheng
357645efad
Changed my mind. We now allow remat of instructions whose defs have subreg indices.
...
llvm-svn: 76100
2009-07-16 20:15:00 +00:00
Owen Anderson
c277dc408b
Privatize the ConstantFP table. I'm on a roll!
...
llvm-svn: 76097
2009-07-16 19:05:41 +00:00
Chris Lattner
bf61e3b4d3
this should be xfailed on darwin. Darwin doesn't use the libstdc++ in the llvm-gcc distro, it uses the system version.
...
llvm-svn: 76095
2009-07-16 18:45:51 +00:00
Evan Cheng
fdd0eb4011
With recent MC changes, RIP base register is explicitly modeled. Make sure we add it when x86 V_SET0 / V_SETALLONES (by transforming it into a constpool load) into the use instruction.
...
llvm-svn: 76094
2009-07-16 18:44:05 +00:00
Ted Kremenek
4ded3d3db2
Update CMake file.
...
llvm-svn: 76093
2009-07-16 18:29:22 +00:00
Owen Anderson
20b34ac794
Move the ConstantInt uniquing table into LLVMContextImpl. This exposed a number of issues in
...
our current context-passing stuff, which is also fixed here
llvm-svn: 76089
2009-07-16 18:04:31 +00:00
Kevin Enderby
dd27e5e10a
Removed the SubsectionsViaSymbols MCStreamer API and replaced it with a generic
...
EmitAssemblerFlag API which takes a value from the added AssemblerFlag
enumerated constants.
llvm-svn: 76087
2009-07-16 17:56:39 +00:00
Dan Gohman
8c129d7687
Fill in some holes in ScalarEvolution's loop iteration condition
...
analysis. This allows indvars to emit a simpler loop trip count
expression.
llvm-svn: 76085
2009-07-16 17:34:36 +00:00
Kevin Enderby
7bef8bc320
Clean up the definition of Str in AsmParser::ParseDirectiveDarwinDumpOrLoad
...
so it is defined with a lifetime that is as short as possible.
llvm-svn: 76082
2009-07-16 17:17:46 +00:00
Daniel Dunbar
e5df197e70
Add SmallString unit test.
...
- Patch by Ryan Flynn!
llvm-svn: 76081
2009-07-16 17:00:06 +00:00
Stuart Hastings
8bdc3779e9
In an Apple-style build, compile with llvm-gcc/llvm-g++ if available.
...
llvm-svn: 76080
2009-07-16 16:49:11 +00:00
Dan Gohman
1511f701e7
Add an isLoopSimplifyForm() predicate, following the example of
...
isLCSSAForm(), to test whether a loop is in the form guaranteed
by the LoopSimplify pass.
llvm-svn: 76077
2009-07-16 16:16:23 +00:00
Dan Gohman
559835f026
Use setStream infomatted_raw_ostream's constructor, to reduce code
...
duplication. Also, make setStream honor the old DeleteStream flag.
llvm-svn: 76075
2009-07-16 15:37:26 +00:00
Dan Gohman
6c45d9f244
Remove inapplicable comments.
...
llvm-svn: 76074
2009-07-16 15:33:48 +00:00
Dan Gohman
7ecda10311
Add explicit keywords.
...
llvm-svn: 76073
2009-07-16 15:33:04 +00:00
Dan Gohman
72c31296e9
Tidy up #includes.
...
llvm-svn: 76072
2009-07-16 15:32:28 +00:00
Dan Gohman
ee05152cfa
Convert more tools code from cerr and cout to errs() and outs().
...
llvm-svn: 76070
2009-07-16 15:30:09 +00:00
Dan Gohman
f199ad6ebc
Use size_t.
...
llvm-svn: 76069
2009-07-16 15:24:40 +00:00
Anton Korobeynikov
77a50bd3a8
Make xfail proper
...
llvm-svn: 76065
2009-07-16 14:53:47 +00:00
Anton Korobeynikov
02fc607d54
Unbreak
...
llvm-svn: 76064
2009-07-16 14:36:52 +00:00
Anton Korobeynikov
73fcd3d962
Temporary disable 16 bit bswap
...
llvm-svn: 76063
2009-07-16 14:35:57 +00:00
Anton Korobeynikov
460e59034b
Add instruction formats and few opcodes
...
llvm-svn: 76062
2009-07-16 14:35:20 +00:00
Anton Korobeynikov
902facfe96
Add bswap patterns
...
llvm-svn: 76061
2009-07-16 14:34:52 +00:00
Anton Korobeynikov
ff21565821
Provide crazy pseudos for regpairs spills / reloads
...
llvm-svn: 76060
2009-07-16 14:34:15 +00:00
Anton Korobeynikov
7fa0ce1a21
Handle long-disp stuff more consistently
...
llvm-svn: 76059
2009-07-16 14:33:52 +00:00
Anton Korobeynikov
30e1cb2ab9
All FP instructions have 12 bit memory displacement field
...
llvm-svn: 76058
2009-07-16 14:33:27 +00:00
Anton Korobeynikov
5b03970c7b
Another predicate routine
...
llvm-svn: 76057
2009-07-16 14:33:01 +00:00
Anton Korobeynikov
5761e33ce4
More helpers
...
llvm-svn: 76056
2009-07-16 14:32:41 +00:00
Anton Korobeynikov
b22afc7bcc
Add bunch of branch folding stuff
...
llvm-svn: 76055
2009-07-16 14:32:19 +00:00
Anton Korobeynikov
0f8c47a7bb
Add missed opcodes to short => long displacement conversion
...
llvm-svn: 76054
2009-07-16 14:31:52 +00:00