Chris Lattner
4cd449813a
convert some uses of printBasicBlockLabel to use GetMBBSymbol
...
instead.
llvm-svn: 81677
2009-09-13 17:14:04 +00:00
Daniel Dunbar
c2e87ad47a
Add LLVMGCCBINDIR to path, since LLVMC expects to find llvm-gcc in the path.
...
llvm-svn: 81669
2009-09-13 02:45:57 +00:00
Daniel Dunbar
9fffa15471
Switch Ocaml to use llvm_supports_binding.
...
llvm-svn: 81665
2009-09-13 01:41:47 +00:00
Daniel Dunbar
abc5153371
tests: Add llvm_supports_binding predicate.
...
llvm-svn: 81664
2009-09-13 01:41:18 +00:00
Daniel Dunbar
f8f547ab6d
tests: Use %abs_tmp instead of ./%t to make these tests portable to 'lit'.
...
llvm-svn: 81663
2009-09-13 01:40:48 +00:00
Daniel Dunbar
6805006d24
tests: Add a %abs_tmp substitution which is guaranteed to be a full path.
...
llvm-svn: 81662
2009-09-13 01:39:50 +00:00
Daniel Dunbar
1b71307d97
Sink llvm-gcc dependent tests into distinct subdirs.
...
llvm-svn: 81661
2009-09-13 01:39:08 +00:00
Daniel Dunbar
5be66ee27e
Rewrite tests to not use Tcl substitution.
...
llvm-svn: 81660
2009-09-13 01:37:07 +00:00
Daniel Dunbar
fa8c00a13c
Simplify LLVMC tests.
...
llvm-svn: 81659
2009-09-13 01:36:19 +00:00
Anton Korobeynikov
6b9b8c1471
Fix merge problem
...
llvm-svn: 81658
2009-09-13 01:12:15 +00:00
Anton Korobeynikov
6c89da7027
Define proper subreg sets for arm - this should fix bunch of subtle problems
...
with subreg - superreg mapping and also fix PR4965.
llvm-svn: 81657
2009-09-13 00:59:43 +00:00
Dan Gohman
f437e68058
Add -mattr=+sse2 to the -march=x86 version of this test. Without
...
sse, this code falls back to SelectionDAG isel which uses an x87
instruction, which is fine, but not what this test is testing for.
llvm-svn: 81656
2009-09-12 23:45:47 +00:00
Daniel Dunbar
a22637897a
Experimental fix for PR4960.
...
- Could we just always implement this as __clear_cache for __GNUC__?
llvm-svn: 81655
2009-09-12 23:29:02 +00:00
Chris Lattner
a602bebb61
devirtualize AsmPrinter::printBasicBlockLabel since it is never overridden.
...
Move GetMBBSymbol up to AsmPrinter and make printBasicBlockLabel use it so that
we only have one place that decides what to name bb labels. Hopefully various
clients of printBasicBlockLabel can start using GetMBBSymbol instead.
llvm-svn: 81652
2009-09-12 23:02:08 +00:00
Chris Lattner
95a312b2e9
we don't want people to override printBasicBlockLabel.
...
llvm-svn: 81651
2009-09-12 22:57:37 +00:00
Dan Gohman
648c836f6c
Remove unnecessary #include.
...
llvm-svn: 81636
2009-09-12 22:24:25 +00:00
Anton Korobeynikov
8d0fbebb9f
Add QPR_VFP2 regclass and add copy_to_regclass nodes, where needed to
...
constraint the register usage.
llvm-svn: 81635
2009-09-12 22:21:08 +00:00
Dan Gohman
f436e87813
Preserve the inbounds flag, so that the constant folder doesn't
...
recompute it.
llvm-svn: 81634
2009-09-12 22:02:17 +00:00
Dan Gohman
07b5c40ed8
Fix the build when DEBUG_SYMBOL_TABLE is set.
...
llvm-svn: 81633
2009-09-12 21:56:48 +00:00
Dan Gohman
3d2c91403c
Convert llvm-link to IRReader.
...
llvm-svn: 81632
2009-09-12 21:55:12 +00:00
Chris Lattner
a1378f3d89
factor MBB label lowering better
...
llvm-svn: 81630
2009-09-12 21:06:08 +00:00
Chris Lattner
6ccf7ed4be
X86MCInstLower::Lower should only not emit anything to OutStreamer,
...
this means that it can only lower one MachineInstr to one MCInst. To
make this fly, we need to pull out handling of MO_GOT_ABSOLUTE_ADDRESS
(which generates an implicit label) out of X86MCInstLower.
llvm-svn: 81629
2009-09-12 21:01:20 +00:00
Chris Lattner
5090e6c4a7
eliminate the "MBBLabel" MCOperand type, and just use a MCSymbol for
...
MBB labels like everything else.
llvm-svn: 81628
2009-09-12 20:45:03 +00:00
Chris Lattner
3172208823
split MachineInstr -> MCInst lowering into its own class (not
...
being embedded into X86ATTAsmPrinter). This still depends heavily
on X86ATTAsmPrinter, but this is a step in the right direction.
llvm-svn: 81627
2009-09-12 20:34:57 +00:00
Chris Lattner
a3f2662a24
remove the "old" at&t style asmprinter. Unfortunately, most of the
...
operand printing crapola cannot be removed yet because it is used by
the inline asm print stuff.
llvm-svn: 81626
2009-09-12 20:01:36 +00:00
Lang Hames
d0fe246dc2
Whoops. Committed the headers for r81605 - 'Moved some more index operations over to LiveIntervals.'
...
llvm-svn: 81609
2009-09-12 04:54:18 +00:00
Lang Hames
dad2da59ad
Moved some more index operations over to LiveIntervals.
...
llvm-svn: 81605
2009-09-12 03:34:03 +00:00
Sean Callanan
57dba6768e
Added the WAIT instruction to the Intel tables,
...
for the purposes of the disassembler.
llvm-svn: 81603
2009-09-12 02:52:41 +00:00
Sean Callanan
29849eadef
Added CMPS (string comparison) instructions for all
...
operand widths to the Intel instruction tables, for
the purposes of the disassembler.
llvm-svn: 81601
2009-09-12 02:25:20 +00:00
Evan Cheng
760c92a5be
Remove -new-coalescer-heuristic. It's not useful.
...
llvm-svn: 81600
2009-09-12 02:14:41 +00:00
Evan Cheng
fe4d1e64d5
80 col violations.
...
llvm-svn: 81598
2009-09-12 02:01:07 +00:00
Chris Lattner
42c1287b68
fix another GCC bootstrap problem, which manifested as things
...
like:
foo.s:2412:non-relocatable subtraction expression, "_gomp_tls_key" minus "L1$pb"
llvm-svn: 81596
2009-09-12 01:11:50 +00:00
Chris Lattner
37a4e48529
fix an embarassing typo that resulted in llvm-gcc bootstrap miscompare
...
because the sorting wasn't sorting.
llvm-svn: 81592
2009-09-12 00:49:00 +00:00
Sean Callanan
4dc00d3781
Added SCAS instructions in their 8, 16, 32, and
...
64-bit variants for the disassembler.
llvm-svn: 81591
2009-09-12 00:37:19 +00:00
Daniel Dunbar
b918900995
Fix -Asserts warning.
...
llvm-svn: 81580
2009-09-11 22:07:31 +00:00
Ted Kremenek
c74e09f654
Update CMake files.
...
llvm-svn: 81577
2009-09-11 21:49:45 +00:00
Douglas Gregor
7241795049
De-bork CMake build. llvm-extract depends on asmparser
...
llvm-svn: 81574
2009-09-11 21:26:24 +00:00
Dan Gohman
e592923603
Fix llvm-extract's "writing bitcode to a terminal" warning, which wasn't
...
working. To support this, add an is_displayed() function to raw_ostream,
and generalize Process::StandardOutIsDisplayed and friends in order to
support it.
Also, call RemoveFileOnSignal before creating a file instead of after, so
that the file isn't left behind if the program is interrupted between when
the file is created and RemoveFileOnSignal is called.
While here, add a -S to llvm-extract and port it to IRReader so that it
supports assembly input.
llvm-svn: 81568
2009-09-11 20:46:33 +00:00
Jim Grosbach
210d6fef51
Revert array initialization regclass change so that the initialization stays static, not runtime.
...
llvm-svn: 81560
2009-09-11 20:13:17 +00:00
Jim Grosbach
a1072a85d6
Update register class references to use the global constant ARM::*RegisterClass names.
...
llvm-svn: 81556
2009-09-11 19:49:06 +00:00
Sean Callanan
31e48cdb5d
Added ADC, SUB, SBB, and OR instructions that operate
...
on rAX and an immediate.
llvm-svn: 81551
2009-09-11 19:01:56 +00:00
Bob Wilson
f544a534cf
Fix pr4820: Don't run llvm-config during "make clean" since it may have
...
already been removed.
llvm-svn: 81547
2009-09-11 18:42:18 +00:00
Dan Gohman
b165c11021
Remove an unnecessary -f.
...
llvm-svn: 81546
2009-09-11 18:41:06 +00:00
Dan Gohman
a080159a7c
Convert more tests to avoid llvm-as.
...
llvm-svn: 81545
2009-09-11 18:36:27 +00:00
Chris Lattner
8b3a539579
fix pasto
...
llvm-svn: 81544
2009-09-11 18:33:44 +00:00
Caroline Tice
183a519771
Don't generate Dwarf line table entries for source line 0.
...
llvm-svn: 81542
2009-09-11 18:25:54 +00:00
Chris Lattner
61bfc3adeb
fix some fixmes: emit stubs in sorted order.
...
llvm-svn: 81541
2009-09-11 18:20:26 +00:00
Dan Gohman
0f3ef7be50
Eliminate more redundant llvm-as calls.
...
llvm-svn: 81540
2009-09-11 18:17:12 +00:00
Dan Gohman
fceb22ff3c
Fix this test to test what it was originally intended to test.
...
llvm-svn: 81539
2009-09-11 18:16:43 +00:00
Chris Lattner
233bfc2890
give densemap iterators real iterator traits.
...
llvm-svn: 81538
2009-09-11 18:15:46 +00:00
Dan Gohman
1880092722
Change tests from "opt %s" to "opt < %s" so that opt doesn't see the
...
input filename so that opt doesn't print the input filename in the
output so that grep lines in the tests don't unintentionally match
strings in the input filename.
llvm-svn: 81537
2009-09-11 18:01:28 +00:00
Duncan Sands
4bd8040d14
Fix PR4948 (and a leak): by not destroying the DwarfException
...
object, the timer it creates was not being deleted. Since the
timer belonged to a static timer group, the timer group would
be destroyed on shutdown, and would notice and complain that
not all timers it contained were destroyed.
llvm-svn: 81533
2009-09-11 17:24:29 +00:00
Chris Lattner
992e42b606
turn on -experimental-asm-printer for x86 / AT&T by default.
...
llvm-svn: 81532
2009-09-11 17:07:27 +00:00
Chris Lattner
7158513fe0
another random update
...
llvm-svn: 81531
2009-09-11 17:07:01 +00:00
Chris Lattner
7730dcc858
reject attempts to take the address of an intrinsic, PR4949.
...
llvm-svn: 81530
2009-09-11 17:05:29 +00:00
Chris Lattner
e54242dc02
fix a bunch of spurious failures for people whose home directory
...
is sabre.
llvm-svn: 81528
2009-09-11 17:02:12 +00:00
Chris Lattner
bc334dcb91
this test is using invalid "intrinsics".
...
llvm-svn: 81527
2009-09-11 16:49:18 +00:00
Chris Lattner
eeeb5e1198
fix test to not get a moduleid that matches 'br'
...
llvm-svn: 81526
2009-09-11 16:47:41 +00:00
Chris Lattner
3e1f5e93cb
default construct MCInst's ctor to 0, which is "PHI" which is invalid for MCInsts.
...
llvm-svn: 81525
2009-09-11 16:33:58 +00:00
Daniel Dunbar
24c00479df
... and fix the REQUIRES_RTTI condition.
...
llvm-svn: 81524
2009-09-11 15:47:24 +00:00
Daniel Dunbar
421bca3c70
Fix REQUIRES_RTTI while awake.
...
llvm-svn: 81523
2009-09-11 15:45:13 +00:00
Daniel Dunbar
8504030c8b
Make REQUIRES_RTTI work.
...
llvm-svn: 81522
2009-09-11 15:39:39 +00:00
Owen Anderson
598467916d
Eliminate some unnecessary implicit constructors in generated DAG ISel code.
...
Partial fix for PR4946.
llvm-svn: 81518
2009-09-11 09:01:57 +00:00
Andreas Neustifter
bcdb0423c5
Bugfix. Sorry.
...
llvm-svn: 81517
2009-09-11 08:43:15 +00:00
Andreas Neustifter
f5a1ca2133
Make ProfileEstimator even more robust on general CFGs.
...
llvm-svn: 81516
2009-09-11 08:39:33 +00:00
Chris Lattner
19a9f42f20
switch HiddenGVStubs to be a DenseMap instead of a string map, mirroring FnStubs and GVStubs.
...
llvm-svn: 81514
2009-09-11 07:03:20 +00:00
Chris Lattner
446d589cad
Fix a bug I introduced in FnStubs generation, switch GVStubs to be a
...
densemap instead of StringMap to match FnStubs.
llvm-svn: 81513
2009-09-11 06:59:18 +00:00
Chris Lattner
9a7edd6bba
change FnStubs from being a StringMap<std::string> to being a much
...
more efficient SmallPtrSet<MCSymbol*>. This eliminates string
craziness and fixes CodeGen/X86/darwin-quote.ll with the new asmprinter.
Codegen is producing stubs in a nondeterminstic order, but it was doing
this before anyway.
llvm-svn: 81511
2009-09-11 06:36:33 +00:00
Chris Lattner
30c44c053f
printInstruction() no longer prints a \n after itself, do it
...
for the two instruction MOVPC32r sequence.
llvm-svn: 81509
2009-09-11 05:59:55 +00:00
Chris Lattner
35ed98aaef
reimplement X86ATTAsmPrinter::GetGlobalAddressSymbol in terms of
...
Mangler::getNameWithPrefix. In addition to avoiding some over
quoting, this also is more efficient because it uses smallvector
instead of std::string thrashing.
llvm-svn: 81508
2009-09-11 05:58:44 +00:00
Chris Lattner
c827f53495
fix prefix ordering, it's L_foo not _Lfoo
...
llvm-svn: 81506
2009-09-11 05:51:29 +00:00
Chris Lattner
840c8d72d0
add a new Mangler::getNameWithPrefix API which returns the
...
(uniqued if unnamed) global variable name with the prefix that
it is supposed to get. It doesn't do "mangling" in the sense of
adding quotes and hacking on bad characters.
llvm-svn: 81505
2009-09-11 05:40:42 +00:00
Chris Lattner
1051efc339
convert X86ATTAsmPrinter::GetExternalSymbolSymbol to use SmallString
...
instead of std::string and Mangler.
llvm-svn: 81503
2009-09-11 04:36:43 +00:00
Chris Lattner
482c5df56d
rearrange some code, export a SmallString version of DecorateCygMingName.
...
llvm-svn: 81502
2009-09-11 04:28:13 +00:00
Chris Lattner
92ada5dc52
more typos
...
llvm-svn: 81499
2009-09-11 01:49:31 +00:00
Evan Cheng
74a3231de4
Follow up to 81494. When the folded reload is narrowed to a 32-bit load then change the destination register to a 32-bit one or add a sub-register index.
...
llvm-svn: 81496
2009-09-11 01:01:31 +00:00
Chris Lattner
82bea72032
PHI nodes can never reach the asmprinter, assert and die instead of printing
...
out an illegal "PHINODE" instruction.
llvm-svn: 81495
2009-09-11 00:41:15 +00:00
Evan Cheng
3cad6283b8
It's not legal to fold a load from a narrower stack slot into a wider instruction. If done, the instruction does a 64-bit load and that's not
...
safe. This can happen we a subreg_to_reg 0 has been coalesced. One
exception is when the instruction that folds the load is a move, then we
can simply turn it into a 32-bit load from the stack slot.
rdar://7170444
llvm-svn: 81494
2009-09-11 00:39:26 +00:00
Dan Gohman
9cbef32726
Make fast-isel try ISD::FNEG before resorting to bitcasts and xors.
...
llvm-svn: 81493
2009-09-11 00:36:43 +00:00
Dan Gohman
89b090e51e
Reapply r81171 with a fix: don't try to use i64 when it
...
isn't legal.
llvm-svn: 81492
2009-09-11 00:34:46 +00:00
Dan Gohman
11ff570292
Fix indentation.
...
llvm-svn: 81484
2009-09-11 00:05:10 +00:00
Dan Gohman
21c6216c87
Teach lib/VMCore/ConstantFold.cpp how to set the inbounds keyword and
...
how to fold notionally-out-of-bounds array getelementptr indices instead
of just doing these in lib/Analysis/ConstantFolding.cpp, because it can
be done in a fairly general way without TargetData, and because not all
constants are visited by lib/Analysis/ConstantFolding.cpp. This enables
more constant folding.
Also, set the "inbounds" flag when the getelementptr indices are
one-past-the-end.
llvm-svn: 81483
2009-09-11 00:04:14 +00:00
Dan Gohman
7190d48075
Factor out the code for checking that all indices in a getelementptr are
...
within the notional bounds of the static type of the getelementptr (which
is not the same as "inbounds") from GlobalOpt into a utility routine,
and use it in ConstantFold.cpp to check whether there are any mis-behaved
indices.
llvm-svn: 81478
2009-09-10 23:37:55 +00:00
Dan Gohman
91d598de5c
Give these files top-level comments that describe the current code.
...
llvm-svn: 81473
2009-09-10 23:07:18 +00:00
Devang Patel
5ffc3854f6
Fix whitespaces.
...
llvm-svn: 81468
2009-09-10 22:36:12 +00:00
Bill Wendling
fd27201d39
Fix validation errors.
...
llvm-svn: 81466
2009-09-10 22:14:16 +00:00
Bill Wendling
33b693f52b
Fix validation errors.
...
llvm-svn: 81465
2009-09-10 22:12:50 +00:00
Bob Wilson
39f51320ca
Don't swap the operands of a subtraction when trying to create a
...
post-decrement load/store.
llvm-svn: 81464
2009-09-10 22:09:31 +00:00
Dale Johannesen
50f0376f49
Fix uppercaseo.
...
llvm-svn: 81463
2009-09-10 22:01:32 +00:00
Kevin Enderby
ce4bec8e0c
Added the ParseInstruction() hook for target specific assembler directives so
...
that things like .word can be parsed as target specific. Moved parsing .word
out of AsmParser.cpp into X86AsmParser.cpp as it is 2 bytes on X86 and 4 bytes
for other targets that support the .word directive.
llvm-svn: 81461
2009-09-10 20:51:44 +00:00
Victor Hernandez
7b98b9291c
Fit code within 80 columns
...
llvm-svn: 81459
2009-09-10 20:18:57 +00:00
Sean Callanan
62aebf9fa2
Added XOR instructions for rAX and immediates of
...
various widths.
llvm-svn: 81458
2009-09-10 19:52:26 +00:00
Sean Callanan
64804f37bb
Added MOV instructions between rAX and memory offsets,
...
including segment offsets and (for 8-bit operands)
absolute offsets.
llvm-svn: 81457
2009-09-10 18:33:42 +00:00
Sean Callanan
31bb414efd
Added a variety of PUSH and POP instructions, including
...
ones capable of accessing R/M operands instead of just
registers.
llvm-svn: 81456
2009-09-10 18:29:13 +00:00
Bill Wendling
9535ae42ff
Exit early if exception handling isn't supported.
...
llvm-svn: 81454
2009-09-10 18:28:06 +00:00
Mikhail Glushenkov
d5107d1333
Allow llvmc to take .bc files as input.
...
llvm-svn: 81452
2009-09-10 17:04:32 +00:00
Andreas Neustifter
753441e318
Make ProfileEstimator more robust on general CFGs.
...
llvm-svn: 81450
2009-09-10 16:30:38 +00:00
Chris Lattner
eba6c725d0
add another broken version of gcc, thanks to Niels Moller for pointing this out.
...
llvm-svn: 81449
2009-09-10 16:25:02 +00:00
Mikhail Glushenkov
c1e23592ec
Distinguish between 'empty' and empty DAG marker.
...
llvm-svn: 81448
2009-09-10 16:22:02 +00:00
Mikhail Glushenkov
7b047b9c81
Add a logical 'not' operator to llvmc's TableGen dialect.
...
llvm-svn: 81447
2009-09-10 16:21:38 +00:00
Nuno Lopes
bc56152196
fix leakage of Module
...
llvm-svn: 81445
2009-09-10 14:56:31 +00:00
Benjamin Kramer
4bf4e8686c
Add some braces to make newer GCCs happy and update CMakeLists.
...
llvm-svn: 81443
2009-09-10 11:31:39 +00:00
Andreas Neustifter
f4858d59e5
Cleaned up code by factoring out common portions of edge loading into function.
...
llvm-svn: 81438
2009-09-10 07:12:35 +00:00
Nick Lewycky
dddf5dcdaf
Correctly handle the case where a comparison is created in one BasicBlock and
...
used by a terminator in another.
llvm-svn: 81437
2009-09-10 07:02:09 +00:00
Bill Wendling
023ed6480e
Comment and whitespace cleanups. No intentional functionality change.
...
llvm-svn: 81436
2009-09-10 06:50:01 +00:00
Bill Wendling
9e5c2065c5
Revert part of my r81424 patch. I removed what looked like superfluous padding
...
from the exception tables. However, Duncan explained why it's a can of worms to
do it the GCC way. I went back to doing it the LLVM way and added Duncan's
explanation so that I don't do this again in the future.
llvm-svn: 81434
2009-09-10 06:27:16 +00:00
Evan Cheng
c1aec40d64
Add a test case for r81431.
...
llvm-svn: 81432
2009-09-10 05:08:51 +00:00
Daniel Dunbar
e2d76237ec
Remove prcontext.
...
llvm-svn: 81427
2009-09-10 04:56:59 +00:00
Evan Cheng
1d9d4bdc99
Add malloc call utility functions. Patch by Victor Hernandez.
...
llvm-svn: 81426
2009-09-10 04:36:43 +00:00
Bill Wendling
243ac566e2
Don't hardcode the TType format size. In fact, rework the code so that it's more
...
like what GCC outputs. The mysterious code to insert padding wasn't in GCC at
all. I modified the TType base offset code to calculate the offset like GCC
does, though.
llvm-svn: 81424
2009-09-10 02:07:37 +00:00
Evan Cheng
f6b2404a84
Proper support of non-lazy indirect symbols.
...
llvm-svn: 81422
2009-09-10 01:23:53 +00:00
Bill Wendling
bf56268ff9
Remove the "#if 0" that Noone loved. It wasn't really necessary, because the
...
code within it was the same inside and out. There's still a problem of the
TypeInfoSize should be the size of the TType format encoding (at least that's
what GCC thinks it should be).
llvm-svn: 81417
2009-09-10 01:12:47 +00:00
Daniel Dunbar
a944234a1e
MC: Give target specific parsers access to the MCStreamer.
...
llvm-svn: 81416
2009-09-10 00:59:15 +00:00
Bob Wilson
59e4c84c6f
Revert r81171 which was causing pr4927.
...
llvm-svn: 81415
2009-09-10 00:49:22 +00:00
Bill Wendling
a482ec83c5
Pull check for SJLJ EH into a boolean and use that.
...
llvm-svn: 81409
2009-09-10 00:17:04 +00:00
Bill Wendling
73094e15c4
Use the SizeOfEncodedValue function instead of magic variables for the
...
sizeof(DW_EH_PE_udata4).
llvm-svn: 81408
2009-09-10 00:13:16 +00:00
Bill Wendling
7b40b5a243
Add helpful comment.
...
llvm-svn: 81406
2009-09-10 00:04:48 +00:00
Bill Wendling
da3e7547fb
Believe it or not, this is a simplification. :-)
...
Basically, this patch is working towards removing the hard-coded values that are
output for the CIE. In particular, the CIE augmentation and the CIE augmentation
size. Both of these should be calculated. In the process, I was able to make a
bunch of code simpler.
The encodings for the personality, LSDA, and FDE in the CIE are still not
correct. They should be generated either from target-specific callbacks (blech!)
or grokked from first-principles.
llvm-svn: 81404
2009-09-09 23:56:55 +00:00
Evan Cheng
71140344f0
Fix double load / store multiple encoding.
...
llvm-svn: 81403
2009-09-09 23:55:03 +00:00
Chris Lattner
d747a9f21f
canonicalize namespace gymnastics
...
llvm-svn: 81402
2009-09-09 23:46:42 +00:00
Dale Johannesen
c15bfb5975
Testcase for (llvm-gcc) 81399. Adjust an older
...
test case to allow for different, functionally
identical output.
llvm-svn: 81400
2009-09-09 23:37:46 +00:00
Bob Wilson
a2e8333eed
Fix pr4939: Change FPCCToARMCC to translate SETOLE to ARMCC::LS.
...
See the bug report for details.
llvm-svn: 81397
2009-09-09 23:14:54 +00:00
Chris Lattner
321bc99a74
remove DebugLoc from MCInst and eliminate "Comment printing" from
...
the MCInst path of the asmprinter. Instead, pull comment printing
out of the autogenerated asmprinter into each target that uses the
autogenerated asmprinter. This causes code duplication into each
target, but in a way that will be easier to clean up later when more
asmprinter stuff is commonized into the base AsmPrinter class.
This also fixes an xcore strangeness where it inserted two tabs
before every instruction.
llvm-svn: 81396
2009-09-09 23:14:36 +00:00
Chris Lattner
5333ec33b3
Fix a subtle bug in "return;" generation which caused us to miss
...
a return in one case. Instead of sprinking return handling code
throughout the asmprinter generator, just treat it like any other
normal statement.
llvm-svn: 81395
2009-09-09 23:09:29 +00:00
Daniel Dunbar
aec990efd7
Add comment re: clang dependency.
...
llvm-svn: 81393
2009-09-09 23:01:25 +00:00
Sean Callanan
1358fb7feb
Added an abstract superclass, MCDisassembler, for
...
all disassemblers.
Modified the MemoryObject to support 64-bit address
spaces, regardless of the LLVM process's address
width.
Modified the Target class to allow extraction of a
MCDisassembler.
llvm-svn: 81392
2009-09-09 22:49:13 +00:00
Bill Wendling
572a0df0fc
Use the EOL that takes the encoding and translates it into DWARF-English.
...
llvm-svn: 81382
2009-09-09 21:26:19 +00:00
Bill Wendling
eaa71c3ae2
Early exit from function.
...
llvm-svn: 81381
2009-09-09 21:08:12 +00:00
Bill Wendling
afd4f30df4
Small amount of code clean-up: Don't use ".size()" when not necessary.
...
llvm-svn: 81380
2009-09-09 21:06:24 +00:00
Chris Lattner
d9e12345af
add a gross hack to get "SrcLine" comments to show up with the
...
new asmprinter. Differently gross hack coming next.
llvm-svn: 81379
2009-09-09 20:45:42 +00:00
Chris Lattner
716a8c92d0
hoist the call to processDebugLoc out of the generated
...
asm printer into the "printInstruction" routine. This
fixes a problem where the experimental asmprinter would
drop debug labels in some cases, and fixes issues on ppc/xcore
where pseudo instructions like "mr" didn't get debug locs properly.
It is annoying that this moves the call from one place into each
target, but a future set of more invasive refactorings will fix
that problem.
llvm-svn: 81377
2009-09-09 20:34:59 +00:00
Lang Hames
6b81770040
Removed static qualifier from a few index related methods. These methods may require a LiveIntervals instance in future.
...
llvm-svn: 81374
2009-09-09 20:14:17 +00:00
Andreas Neustifter
1bad7f222a
Reverted r81358.
...
llvm-svn: 81364
2009-09-09 18:19:35 +00:00
Dan Gohman
ec4557f324
Fix SplitCriticalEdge to properly update LCSSA form when splitting a
...
loop exit edge -- new PHIs may be needed not only for the additional
splits that are made to preserve LoopSimplify form, but also for the
original split. Factor out the code that inserts new PHIs so that it
can be used for both. Remove LoopRotation.cpp's code for manually
updating LCSSA form, as it is now redundant. This fixes PR4934.
llvm-svn: 81363
2009-09-09 18:18:18 +00:00
Benjamin Kramer
3cb19a156d
Fix build, add missing simicolon.
...
llvm-svn: 81362
2009-09-09 18:03:46 +00:00
Mike Stump
deaf572ca8
Reflow comment.
...
llvm-svn: 81361
2009-09-09 17:57:16 +00:00
Andreas Neustifter
4c0b2847ef
Preserve ProfileInfo.
...
llvm-svn: 81360
2009-09-09 17:53:39 +00:00
Andreas Neustifter
93bc18f80a
Add the first functions for updating ProfileInfo.
...
llvm-svn: 81359
2009-09-09 17:52:57 +00:00
Andreas Neustifter
505fd86bd2
Cleaned up code by factoring out common portions of edge loading into funcion.
...
llvm-svn: 81358
2009-09-09 17:51:39 +00:00
Devang Patel
cbde073d8c
Take lock before removing a node from MDNodeSet.
...
llvm-svn: 81356
2009-09-09 17:44:26 +00:00
Devang Patel
9a767cb5c0
Enable MDNode uniquing.
...
llvm-svn: 81355
2009-09-09 17:30:04 +00:00
Dan Gohman
c56af25c01
Fix an 80-column violation.
...
llvm-svn: 81354
2009-09-09 17:17:19 +00:00
Devang Patel
93056ec4e2
Gracefully destroy MDNodes.
...
llvm-svn: 81353
2009-09-09 17:07:07 +00:00
Chris Lattner
9ded9ac8af
revert r81335, which breaks the build.
...
llvm-svn: 81347
2009-09-09 16:00:57 +00:00
Dan Gohman
16ad903fcf
When widening a vector load, use the correct chain. This fixes PR4891.
...
llvm-svn: 81343
2009-09-09 14:22:57 +00:00
Andreas Neustifter
ba545ec6f5
Fixed wrong storage option for ProfileVerifierDisableAssertions.
...
Fixed non working -profile-verifier-noassert option.
Fixed missing newline in debugEntry().
Cleaned up assert messages. (assert(0 && Message) is still shown, but the message is printed before.)
When verifiying loaded profiles the ProfileVerifier got confused when block was a setjmp target, this is checked now.
When verifiying loaded profiles the ProfileVerifier got confused when block eventually reaching an exit(), this is checked now.
llvm-svn: 81338
2009-09-09 13:01:03 +00:00
Andreas Neustifter
0bd472dc33
Updated ProfileInfo to have clean seperation between different sentinels.
...
llvm-svn: 81335
2009-09-09 12:48:26 +00:00
Benjamin Kramer
2a1131a42f
Add a shortcut for OS X to Path::GetMainExecutable. This gives a nice speedup on
...
clang's testsuite.
llvm-svn: 81333
2009-09-09 12:09:08 +00:00
Mikhail Glushenkov
5cf21a9668
Copy-pasto.
...
llvm-svn: 81331
2009-09-09 10:14:55 +00:00
Mikhail Glushenkov
48893a691e
Revert 81248 for now.
...
Program objects have ownership semantics on Windows.
llvm-svn: 81329
2009-09-09 09:52:04 +00:00
Mikhail Glushenkov
d2f8a111cd
Check that the 'kill' call succeeded.
...
Thanks to Duncan Sands for spotting this.
llvm-svn: 81328
2009-09-09 09:51:47 +00:00
Torok Edwin
a40184aa77
Add testcase for r81322 (PR4933).
...
llvm-svn: 81327
2009-09-09 09:34:43 +00:00
Anton Korobeynikov
bfd22dd704
Provide proper section flags for various BSS flavours
...
llvm-svn: 81322
2009-09-09 08:48:53 +00:00
Anton Korobeynikov
1df58860e8
Whitespace cleanup
...
llvm-svn: 81321
2009-09-09 08:41:20 +00:00
Chris Lattner
d5f2b3f543
add a testacse for the objc problem that required required r81305
...
to be temporarily disabled.
llvm-svn: 81320
2009-09-09 06:19:34 +00:00
Chris Lattner
afa12db8a6
disable the new asmprinter by default. Both the Mangler and MCSymbol
...
printing stuff are quoting symbols now, breaking objc testcases.
llvm-svn: 81319
2009-09-09 06:11:14 +00:00
Evan Cheng
cf61d68eaf
Cast MO.getImm() to unsigned before comparing with an unsigned limit.
...
llvm-svn: 81318
2009-09-09 06:05:16 +00:00
Jeffrey Yasskin
ccbeaf5f94
Make TypeBuilder's result depend on the LLVMContext it's passed.
...
TypeBuilder was using a local static variable to cache its result. This made it
ignore changes in its LLVMContext argument and always return a type constructed
from the argument to the first call.
llvm-svn: 81316
2009-09-09 05:04:01 +00:00
Daniel Dunbar
d556bc48d7
Update test.
...
llvm-svn: 81314
2009-09-09 02:41:50 +00:00
Daniel Dunbar
d44c2e033f
Count test correctly with -q.
...
llvm-svn: 81313
2009-09-09 02:41:42 +00:00
Daniel Dunbar
03e7a26276
Fix another refactoro.
...
llvm-svn: 81312
2009-09-09 02:41:32 +00:00
Evan Cheng
4029b85567
Make sure to make stub region writable before emission, executable after emission.
...
llvm-svn: 81311
2009-09-09 01:56:29 +00:00
Evan Cheng
9fa8345b65
Fix arm jit encoding bug introduced by 75048. Some instructions', e.g. MOVi, bit 25 should be set.
...
llvm-svn: 81310
2009-09-09 01:47:07 +00:00
Evan Cheng
49adbf42b1
Make sure the memory range is writable before memset'ing it.
...
llvm-svn: 81308
2009-09-09 01:45:24 +00:00
Eric Christopher
98e0a59acc
Correct __cxa_end_catch documentation to reflect that it doesn't take any arguments.
...
llvm-svn: 81307
2009-09-09 01:44:53 +00:00
Evan Cheng
a1c6495af7
Remove comments which don't add much to .s readibility.
...
llvm-svn: 81306
2009-09-09 01:38:23 +00:00
Chris Lattner
ba0d9f538f
turn the mcinst asmprinter on by default for x86, tweaking two tests to
...
expect the slight syntax differences in the generated code.
llvm-svn: 81305
2009-09-09 00:41:36 +00:00
Chris Lattner
24083066c8
tidy up
...
llvm-svn: 81304
2009-09-09 00:40:31 +00:00
Bill Wendling
14a2514c20
Remove failing test...
...
llvm-svn: 81303
2009-09-09 00:30:25 +00:00
Chris Lattner
f2fefedcf8
make sure to send external symbols through the mangler,
...
this fixes mingw-alloca.ll with the new asmprinter.
llvm-svn: 81301
2009-09-09 00:23:32 +00:00
Dan Gohman
c466e31309
Use "opt < %s" instead of "opt %s" to keep the testname away from the grep.
...
llvm-svn: 81299
2009-09-09 00:22:49 +00:00
Chris Lattner
5fdb699f13
this got merged into lea.ll
...
llvm-svn: 81298
2009-09-09 00:22:31 +00:00
Chris Lattner
68d3d61ec1
filecheckize
...
llvm-svn: 81297
2009-09-09 00:19:46 +00:00
Chris Lattner
cada1c1012
allow @ in symbol names without quoting the identifier. This
...
allows things like @PLT without quotes.
llvm-svn: 81296
2009-09-09 00:14:09 +00:00
Bill Wendling
ea81960798
Fix PR4865. This syncs up the JIT's DWARF emitter with what's in the
...
'DwarfException.cpp' file, which changed how CIEs were emitted, the sizes of
some fields, etc.
llvm-svn: 81295
2009-09-09 00:11:02 +00:00
Chris Lattner
c5a95c5aad
add support for @PLT and friends on external symbols, fixes
...
x86-64-pic-11.ll with the new asmprinter.
llvm-svn: 81294
2009-09-09 00:10:14 +00:00
Dan Gohman
c8054d90fb
Eliminate more uses of llvm-as and llvm-dis.
...
llvm-svn: 81293
2009-09-09 00:09:15 +00:00
Dan Gohman
40503396da
Eliminate more uses of llvm-as and llvm-dis.
...
llvm-svn: 81290
2009-09-08 23:54:48 +00:00
Chris Lattner
f87421f088
update various tests for signedness changes in .s file.
...
llvm-svn: 81289
2009-09-08 23:51:06 +00:00
Chris Lattner
9ef94277f1
adjust for signedness change. I'd appreciate it if an ARM flavored person
...
could look at this: the top undefined bits of an immediate shouldn't affect
isel (cmp vs cmp.w)
llvm-svn: 81288
2009-09-08 23:44:53 +00:00
Daniel Dunbar
6b3e7bd4ee
Merge Archive/extract* tests into one; this avoids a race when tests are run in
...
parallel (the test should really use temps for the output, though).
llvm-svn: 81287
2009-09-08 23:44:24 +00:00
Chris Lattner
6837964819
merge thumb2-bic2.ll into thumb2-bic.ll and update for signedness changes.
...
llvm-svn: 81285
2009-09-08 23:41:06 +00:00
Daniel Dunbar
a8597a3749
Add Triple::getArchTypeForDarwinArchName, which converts a "Darwin" architecture
...
name (e.g. "ppc") to the appropriate constant.
Also, StringRefize additional Triple constructor.
llvm-svn: 81274
2009-09-08 23:32:51 +00:00
Chris Lattner
9e5674ae3f
tweak this to pass on linux.
...
llvm-svn: 81273
2009-09-08 23:32:40 +00:00
Daniel Dunbar
6119d878bb
Improve JIT error message for users crazy enough to use -march with JIT, and
...
mention -version in messages about missing targets.
llvm-svn: 81272
2009-09-08 23:32:35 +00:00
Chris Lattner
22833a3cd6
parenthesize symbol names that start with $, fixing X86/dollar-name.ll with
...
the new asmprinter.
llvm-svn: 81269
2009-09-08 23:20:50 +00:00
Chris Lattner
dae3e56cb7
convert to filecheck syntax
...
llvm-svn: 81267
2009-09-08 23:16:26 +00:00
Chris Lattner
e819cfbc71
change selectiondag to add the sign extended versions of immediate operands
...
to instructions instead of zero extended ones. This makes the asmprinter
print signed values more consistently. This apparently only really affects
the X86 backend.
llvm-svn: 81265
2009-09-08 23:05:44 +00:00
Dan Gohman
22f339010c
Use "opt < %s" instead of "opt %s" so that opt doesn't print the test
...
filename in the output, which interferes with the tests' grep lines.
llvm-svn: 81263
2009-09-08 22:57:49 +00:00
Anton Korobeynikov
7697d37777
Unbreak getOnesVector() / getZeroVector() to use valid ARM extended imm's.
...
llvm-svn: 81262
2009-09-08 22:51:43 +00:00
Dan Gohman
4f2527cd6d
Convert a few more opt | llvm-dis to opt -S.
...
llvm-svn: 81261
2009-09-08 22:41:33 +00:00
Chris Lattner
7896c8ba58
filecheckize some tests
...
llvm-svn: 81259
2009-09-08 22:38:46 +00:00
Dan Gohman
72a13d2476
Use opt -S instead of piping bitcode output through llvm-dis.
...
llvm-svn: 81257
2009-09-08 22:34:10 +00:00
Dan Gohman
e6a80ced1c
Use MemoryBuffer::getBufferIdentifier() in the AsmPrinter instead
...
of requiring a name be passed in. This makes it use "<stdin>"
instead of "-" and makes it more consistent with the Bitcode reader.
llvm-svn: 81256
2009-09-08 22:20:35 +00:00
Mikhail Glushenkov
a3fbf36004
This should unbreak the build on 64-bit Linux.
...
llvm-svn: 81252
2009-09-08 20:31:27 +00:00
Owen Anderson
f0081db7e8
Fix PR4909, patch by Jakub Staszak.
...
llvm-svn: 81250
2009-09-08 19:53:15 +00:00
Mikhail Glushenkov
29b5d3012b
Const-correctness.
...
llvm-svn: 81249
2009-09-08 19:51:39 +00:00
Mikhail Glushenkov
28471eee1d
Since Program is basically a PID, it should be copyable.
...
llvm-svn: 81248
2009-09-08 19:51:12 +00:00
Mikhail Glushenkov
f9e2f241df
Get rid of the Pid_ member in the Program class.
...
llvm-svn: 81247
2009-09-08 19:50:55 +00:00
Mikhail Glushenkov
4a91b7605b
Add a Kill() function to the Program class.
...
llvm-svn: 81246
2009-09-08 19:50:27 +00:00
Chris Lattner
10ff0c1862
another typo
...
llvm-svn: 81243
2009-09-08 19:45:34 +00:00
Evan Cheng
57b14190e6
Do not specify -mmacosx-version-min if building for arm-apple-darwin.
...
llvm-svn: 81240
2009-09-08 18:52:20 +00:00
Chris Lattner
9ce1781ef4
remove an extremely dubious instcombine transformation of
...
extractelement(load).
llvm-svn: 81239
2009-09-08 18:48:01 +00:00
Devang Patel
926fc3d68d
Remove dead code.
...
llvm-svn: 81235
2009-09-08 18:14:36 +00:00
Dan Gohman
05b2f10e57
Trim unnecessary declarations.
...
llvm-svn: 81227
2009-09-08 17:03:05 +00:00
Dan Gohman
9737a63ed8
Change these tests to feed the assembly files to opt directly, instead
...
of using llvm-as, now that opt supports this.
llvm-svn: 81226
2009-09-08 16:50:01 +00:00
Daniel Dunbar
6e4ed8ca5f
Fix may-be-used-uninitialized warning.
...
llvm-svn: 81223
2009-09-08 16:14:54 +00:00
Dan Gohman
40d204fc83
llvm-as is no longer needed here, now that opt can read assembly
...
files directly.
llvm-svn: 81222
2009-09-08 15:52:56 +00:00
Dan Gohman
3ddbc242fb
Re-apply r80926, with fixes: keep the domtree informed of new blocks
...
that get created during loop unswitching, and fix SplitBlockPredecessors'
LCSSA updating code to create new PHIs instead of trying to just move
existing ones.
Also, optimize Loop::verifyLoop, since it gets called a lot. Use
searches on a sorted list of blocks instead of calling the "contains"
function, as is done in other places in the Loop class, since "contains"
does a linear search. Also, don't call verifyLoop from LoopSimplify or
LCSSA, as the PassManager is already calling verifyLoop as part of
LoopInfo's verifyAnalysis.
llvm-svn: 81221
2009-09-08 15:45:00 +00:00
Anton Korobeynikov
59e2b8e894
Add NEON 'laned' operations. This fixes another bunch of gcc testsuite fails and
...
makes the code faster.
llvm-svn: 81220
2009-09-08 15:22:32 +00:00
Chris Lattner
6760e54c92
fix a couple typos pointed out by edwin and duncan
...
llvm-svn: 81219
2009-09-08 15:13:16 +00:00
Dan Gohman
87be9e7c78
Unbreak these tests. Chris, please verify that these changes are intended.
...
llvm-svn: 81217
2009-09-08 14:14:24 +00:00
Richard Pennington
bd1fc36002
Add source debug information to the Sparc code generator.
...
llvm-svn: 81215
2009-09-08 12:47:30 +00:00
Nicolas Geoffray
51ae4a23da
When emitting a label for a PostCall safe point, the machine
...
instruction to insert before can be end(). getDebugLoc on
end() returns an invalid value, therefore use the debug
loc of the call instruction, and give it to InsertLabel.
llvm-svn: 81207
2009-09-08 07:39:27 +00:00
Nicolas Geoffray
8ab546ddca
Also emit a label for TargetInstrInfo::GC_LABEL.
...
llvm-svn: 81206
2009-09-08 07:36:18 +00:00
Anton Korobeynikov
758f8c690d
Unbreak
...
llvm-svn: 81205
2009-09-08 07:30:03 +00:00
Evan Cheng
a7afdda65d
When remat'ing and destination virtual register has a sub-register index. Make sure the sub-register class matches the register class of the remat'ed instruction definition register class.
...
llvm-svn: 81204
2009-09-08 06:39:07 +00:00
Chris Lattner
7975b8fc32
Print "X-42" instead of "X+-42".
...
llvm-svn: 81203
2009-09-08 06:37:35 +00:00
Chris Lattner
3cfc551f6e
make formatting of expressions more closely match the existing asmprinter.
...
llvm-svn: 81202
2009-09-08 06:34:07 +00:00
Chris Lattner
a0020be758
tidy whitespace.
...
llvm-svn: 81201
2009-09-08 06:27:48 +00:00
Chris Lattner
a8cb3dffe9
disable some irrelevant eh emission
...
llvm-svn: 81200
2009-09-08 06:26:40 +00:00
Chris Lattner
adb4545d14
add support for some missing modifiers on jumptable/constant pool entries.
...
llvm-svn: 81199
2009-09-08 06:25:12 +00:00
Chris Lattner
31d1810b16
add a bunch more evil lowering code to work around various :subreg32 modifiers
...
in the .td files. This gets us down to 18 failures in codegen/x86 with the
new asmprinter.
llvm-svn: 81198
2009-09-08 06:19:15 +00:00
Daniel Dunbar
d0521071f5
lit needs bash for tcl-as-sh execution, we use set -o pipefail.
...
llvm-svn: 81197
2009-09-08 06:08:07 +00:00
Chris Lattner
520a7f9250
ADd support for "lowering" the X86::MOVZX16rr8/X86::MOVZX16rm8
...
subreg32 modifiers.
llvm-svn: 81196
2009-09-08 06:03:07 +00:00
Chris Lattner
8280e58545
add a hack to lower MOV16r0 to MOV32r0 in MCInstLower, eliminating
...
the problem with subreg32 modifiers. This gets all of Olden working
with the new asmprinter.
llvm-svn: 81195
2009-09-08 05:49:25 +00:00
Daniel Dunbar
d89e08b3c0
Fix typo that worked on python 2.6.
...
Also, fix unit tests.
llvm-svn: 81194
2009-09-08 05:46:28 +00:00
Nick Lewycky
12c77d73a9
Hoist out the test+insert to CheckedTypes. This doesn't seem to affect
...
performance.
llvm-svn: 81193
2009-09-08 05:46:15 +00:00
Daniel Dunbar
9b712b3c8d
Fix a refactoro.
...
llvm-svn: 81192
2009-09-08 05:37:51 +00:00
Daniel Dunbar
3eeddd22dd
Add 'lit' support for llvm tests.
...
- This adds 'make check-lit' from the top-level Makefile.
llvm-svn: 81191
2009-09-08 05:31:44 +00:00
Daniel Dunbar
a213a427aa
Add 'lit' testing tool.
...
- make install && man $(llvm-config --prefix)/share/man/man1/lit.1 for more
information.
llvm-svn: 81190
2009-09-08 05:31:18 +00:00
Chris Lattner
ba7cdde020
llvm::cerr is gone.
...
llvm-svn: 81189
2009-09-08 05:15:50 +00:00
Chris Lattner
633ad4ee17
update this to use raw_ostream
...
llvm-svn: 81188
2009-09-08 05:14:44 +00:00
Chris Lattner
b2fcd070e2
fix PR4767, a crash because fp stackifier visited blocks in
...
depth first order, so it wouldn't process unreachable blocks.
When compiling at -O0, late dead block elimination isn't done
and the bad instructions got to isel.
llvm-svn: 81187
2009-09-08 04:55:44 +00:00
Chris Lattner
d1b21c6092
remove a turd
...
llvm-svn: 81186
2009-09-08 03:47:41 +00:00
Chris Lattner
d3210e1a20
instcombine transforms vector loads that are only used by
...
extractelement operations into a bitcast of the pointer,
then a gep, then a scalar load. Disable this when the vector
only has one element, because it leads to infinite loops in
instcombine (PR4908).
This transformation seems like a really bad idea to me, as it
will likely disable CSE of vector load/stores etc and can be
better done in the code generator when profitable. This
goes all the way back to the first days of packed types,
r25299 specifically.
I'll let those people who care about the performance of vector
code decide what to do with this.
llvm-svn: 81185
2009-09-08 03:44:51 +00:00
Chris Lattner
de6a44b790
fix pasto
...
llvm-svn: 81184
2009-09-08 03:39:55 +00:00
Chris Lattner
5c2126d67e
add getVectorOperand/getIndexOperand accessors to ExtractElementInst.
...
Fix some const correctness problems in SelectInst.
llvm-svn: 81183
2009-09-08 03:32:53 +00:00
Nick Lewycky
984161af16
Simplify from my last change. Assert1 is a macro that makes its caller return,
...
so "Assert1(isa<>); cast<>" is a valid idiom.
Actually check the PHI node's odd-numbered operands for BasicBlock-ness, like
the comment said.
llvm-svn: 81182
2009-09-08 02:02:39 +00:00
Dan Gohman
f4a0f0f033
Fix an abort on a store of an empty struct member. getValue returns
...
null in the case of an empty struct, so don't try to call getNumValues
on it.
llvm-svn: 81180
2009-09-08 01:44:02 +00:00
Nick Lewycky
b2b0467e18
Verify types. Invalid types can be constructed when assertions are off.
...
Make the verifier more robust by avoiding unprotected cast<> calls. Notably,
Assert1(isa<>); cast<> is not safe as Assert1 does not terminate the program.
llvm-svn: 81179
2009-09-08 01:23:52 +00:00
Chris Lattner
4ad0b4c544
fix PR4915, a crash in -debug mode.
...
llvm-svn: 81177
2009-09-08 01:22:54 +00:00
Chris Lattner
f2ab40a46f
Fix PR4882, by making MemCpyOpt not dereference removed stores to get the
...
context for the newly created operations.
Patch by Jakub Staszak!
llvm-svn: 81175
2009-09-08 00:27:14 +00:00
Chris Lattner
0cdbc7a2ca
fix ComputeMaskedBits handling of zext/sext/trunc to work with vectors.
...
This fixes PR4905
llvm-svn: 81174
2009-09-08 00:13:52 +00:00
Chris Lattner
4bc2825d0b
add some comments to describe the invariants.
...
llvm-svn: 81173
2009-09-08 00:06:16 +00:00
Dan Gohman
1b84908f92
Reappy r80998, now that the GlobalOpt bug that it exposed on MiniSAT is fixed.
...
llvm-svn: 81172
2009-09-07 23:54:19 +00:00
Dan Gohman
2512a42548
Fix a thinko: When lowering fneg with xor, bitcast the operands
...
from floating-point to integer first, and bitcast the result
back to floating-point. Previously, this test was passing by
falling back to SelectionDAG lowering. The resulting code isn't
as nice, but it's correct and CodeGen now stays on the fast path.
llvm-svn: 81171
2009-09-07 23:47:14 +00:00
Chris Lattner
a34a718c4b
add some more notes.
...
llvm-svn: 81170
2009-09-07 23:33:52 +00:00
Dan Gohman
d131e18dd0
Add a testcase for the GlobalOpt inbounds fix.
...
llvm-svn: 81168
2009-09-07 23:04:59 +00:00
Chris Lattner
ec72b9bbcf
describe undef semantics in some more detail.
...
llvm-svn: 81167
2009-09-07 22:52:39 +00:00
Dan Gohman
02e363ed52
Add inbounds to these getelementptrs, now that GlobalOpt requires this,
...
to preserve the meaning of these tests.
llvm-svn: 81166
2009-09-07 22:45:41 +00:00
Dan Gohman
161429fe7e
Don't commit stores with addresses that have indices that are not
...
compile-time constant integers or that are out of bounds for their
corresponding static array types. These can cause aliasing that
GlobalOpt assumes won't happen.
llvm-svn: 81165
2009-09-07 22:44:55 +00:00
Dan Gohman
82e747580f
Don't commit addresses of aggregate values. This avoids problems with
...
an aggregate store overlapping a different aggregate store, despite
the stores having distinct addresses.
llvm-svn: 81164
2009-09-07 22:42:05 +00:00
Dan Gohman
beee35a277
Fix GlobalOpt to avoid committing a store if the address getelementptr
...
is missing the inbounds flag. This is slightly conservative, but it
avoids problems with two constants pointing to the same address but
getting distinct entries in the Memory DenseMap.
llvm-svn: 81163
2009-09-07 22:40:13 +00:00
Dan Gohman
19244eaa4a
Preserve the InBounds flag when evaluating a getelementptr instruction
...
into a getelementptr ConstantExpr.
llvm-svn: 81162
2009-09-07 22:34:43 +00:00
Dan Gohman
f7f3fb1133
Simplify this code by using hasDefinitiveInitializer().
...
llvm-svn: 81161
2009-09-07 22:31:26 +00:00
Chris Lattner
e48704b8da
tighten test.
...
llvm-svn: 81159
2009-09-07 22:15:23 +00:00
Chris Lattner
3b134cd72a
tweak test, add PR#
...
llvm-svn: 81158
2009-09-07 22:14:41 +00:00
Nick Lewycky
d7fb16d895
Express this in the canonical way.
...
llvm-svn: 81157
2009-09-07 21:50:24 +00:00
Nick Lewycky
3fc89804a6
Homogenize whitespace.
...
llvm-svn: 81156
2009-09-07 20:44:51 +00:00
Daniel Dunbar
d6b6c59729
Use -output-prefix in bugpoint tests so that outputs go in temp directory (and
...
we don't race on them).
llvm-svn: 81155
2009-09-07 19:26:18 +00:00
Daniel Dunbar
a53337f731
Add -output-prefix option to bugpoint (to change the default output name).
...
llvm-svn: 81154
2009-09-07 19:26:11 +00:00
Daniel Dunbar
7fcfc4fc31
Don't depend on Tcl behavior of redirecting stderr for all commands in a
...
pipeline.
llvm-svn: 81153
2009-09-07 19:26:02 +00:00
Daniel Dunbar
0367b0f136
Avoid Tcl substitution, introduced %llvmgcc_only for this one little test
...
(%llvmgcc includes a '-w' argument, and this test looks for warnings).
llvm-svn: 81152
2009-09-07 19:25:54 +00:00
Duncan Sands
cd32ecf44f
Using a signal handler that does nothing should be
...
equivalent to SIG_IGN.
llvm-svn: 81144
2009-09-07 05:58:25 +00:00
Daniel Dunbar
8feee907e4
Update unittests for MDNode uniquing disable.
...
llvm-svn: 81142
2009-09-07 04:19:02 +00:00
Daniel Dunbar
10fcf3354b
Disable MDNode uniquing.
...
- Hopefully this unbreaks some llvm-gcc bootstraps.
llvm-svn: 81141
2009-09-07 04:05:49 +00:00
Daniel Dunbar
01d7e3b54a
Document opt -S argument.
...
llvm-svn: 81140
2009-09-07 04:03:44 +00:00
Eric Christopher
66d8555f7e
Fix comment.
...
llvm-svn: 81138
2009-09-06 22:20:54 +00:00
Anton Korobeynikov
d2c19c74d6
Do not create calls via PLT in compilation callback - this is higly platform
...
dependent. Hopefully, this will fix PR3801.
llvm-svn: 81132
2009-09-06 20:21:48 +00:00
Duncan Sands
4827538f82
Do not try to override non-virtual methods, especially
...
when the new method gives the same result as the original
(as far as I can see). This will hopefully pacify icc.
llvm-svn: 81131
2009-09-06 20:02:00 +00:00
Duncan Sands
bfb9719dad
Remove a left over bit of code with no effect.
...
llvm-svn: 81128
2009-09-06 19:29:07 +00:00
Duncan Sands
6c643bd25d
Avoid warnings if assertions are off.
...
llvm-svn: 81127
2009-09-06 19:28:38 +00:00
Duncan Sands
8a2aa38c55
Remove unreachable code.
...
llvm-svn: 81126
2009-09-06 19:27:53 +00:00
Duncan Sands
3ee3c174b1
Simplify. Testing shows that this is not equivalent to BBI = CR.CaseBB + 1.
...
llvm-svn: 81124
2009-09-06 18:03:32 +00:00
Duncan Sands
6bd6a72e73
Avoid an unused variable warning when assertions are
...
disabled.
llvm-svn: 81122
2009-09-06 16:27:34 +00:00
Duncan Sands
6d46e7689c
Change "const static" to "static const", as warned about
...
by icc (#82 ). Patch by Erick Tryzelaar.
llvm-svn: 81117
2009-09-06 13:10:36 +00:00
Duncan Sands
d216b05e75
Mark more constants unsigned, as warned about by icc ( #68 ).
...
Patch by Erick Tryzelaar.
llvm-svn: 81116
2009-09-06 12:56:52 +00:00
Duncan Sands
89720bbd11
Remove some not-really-used variables, as warned
...
about by icc (#593 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81115
2009-09-06 12:41:19 +00:00
Benjamin Kramer
2b37efaf53
More MSVC warning fixes:
...
1. DUPMAX is defined in regcomp.c, no need to redefine it in regutils.
2. MSVC doesn't like snprintf, use _snprintf instead.
llvm-svn: 81114
2009-09-06 12:26:28 +00:00
Duncan Sands
8234cdb68f
Remove strange 'const' qualifiers, as warned about by icc
...
(#411 ). Patch by Erick Tryzelaar.
llvm-svn: 81113
2009-09-06 12:16:26 +00:00
Benjamin Kramer
e3c9d23bea
It's a bool, so treat it like one. Fixes a MSVC warning.
...
llvm-svn: 81112
2009-09-06 12:10:17 +00:00
Duncan Sands
b986b8ffe7
Mark constants as unsigned, as pointed out by icc
...
warnings (#174 ). Patch by Erick Tryzelaar.
llvm-svn: 81111
2009-09-06 11:45:14 +00:00
Duncan Sands
44d423ac93
Tweak code into an equivalent form for which icc
...
doesn't warn about unreachable instructions. Patch
by Erick Tryzelaar (#111 ).
llvm-svn: 81110
2009-09-06 10:53:22 +00:00
Benjamin Kramer
63951ada31
Fix an integer truncation noticed by MSVC.
...
llvm-svn: 81109
2009-09-06 09:35:10 +00:00
Benjamin Kramer
0e098e9df7
Remove splint hints to silence warnings from ICC and MSVC.
...
llvm-svn: 81108
2009-09-06 09:29:39 +00:00
Duncan Sands
0f5bbb585c
Public and private corrections, warned about by icc ( #304 ).
...
Patch by Erick Tryzelaar.
llvm-svn: 81107
2009-09-06 08:55:57 +00:00
Duncan Sands
2fbeaf084f
Remove some unused variables and methods warned about by
...
icc (#177 , partial). Patch by Erick Tryzelaar.
llvm-svn: 81106
2009-09-06 08:33:48 +00:00
Duncan Sands
109e762a57
Remove unneeded declaration, as warned about by
...
icc (#1170 ). Patch by Erick Tryzelaar.
llvm-svn: 81104
2009-09-06 07:23:28 +00:00
Daniel Dunbar
86c6a6ef0f
Fix a possible crash call setIsInBounds.
...
- I think there are more instances of this, but I think they are fixed in Dan's
incoming patch. This one was preventing me from doing a bugpoint reduction
though.
llvm-svn: 81103
2009-09-06 02:31:36 +00:00
Daniel Dunbar
da30ecdcdd
Simplify, now that gtest supports raw_ostream directly.
...
llvm-svn: 81102
2009-09-06 02:31:26 +00:00
Evan Cheng
904199547b
Revert r80926. It causes loop unswitch assertion and slow down some JIT tests significantly.
...
llvm-svn: 81101
2009-09-06 02:26:10 +00:00
Daniel Dunbar
10ea8bb8e0
Revert "Include optional subclass flags, such as inbounds, nsw, etc., ...", this
...
breaks MiniSAT on x86_64.
llvm-svn: 81098
2009-09-06 00:11:24 +00:00
Daniel Dunbar
db5d4521f5
Fix spacing.
...
llvm-svn: 81097
2009-09-06 00:00:13 +00:00
Nick Lewycky
d592399beb
Now that googletest can print ConstantRange, use EXPECT_EQ when testing for
...
equality. Prefer EXPECT_EQ(foo, Full) over EXPECT_TRUE(foo.isFullSet()) because
the former will print out the contents of the constant range that failed.
llvm-svn: 81094
2009-09-05 18:27:40 +00:00
Jeffrey Yasskin
b797fdc365
Teach googletest to use raw_ostream instead of just std::ostream.
...
This can break when there are implicit conversions from types raw_ostream
understands but std::ostream doesn't, but it increases the number of cases that
Just Work.
llvm-svn: 81093
2009-09-05 18:16:17 +00:00
Daniel Dunbar
25900fc909
Quote another '%S' in a test.
...
llvm-svn: 81088
2009-09-05 12:38:44 +00:00
Daniel Dunbar
faa0fa5c83
Rename %S metavar to %M (clang uses %S for the basename of the test file).
...
llvm-svn: 81087
2009-09-05 12:38:35 +00:00
Daniel Dunbar
5e606cb503
Temporary test files should use %t.
...
llvm-svn: 81086
2009-09-05 12:38:26 +00:00
Daniel Dunbar
b9a562b7c4
Don't depend on arch specific global prefix.
...
llvm-svn: 81084
2009-09-05 11:53:06 +00:00
Daniel Dunbar
b9ea94c990
Eliminate uses of %prcontext.
...
- I'd appreciate it if someone else eyeballs my changes to make sure I captured
the intent of the test.
llvm-svn: 81083
2009-09-05 11:35:16 +00:00
Daniel Dunbar
6b3153bb53
opt: Add -S option to print output as LLVM assembly.
...
llvm-svn: 81082
2009-09-05 11:34:53 +00:00
Daniel Dunbar
77e2f2583b
Eliminate some Tclisms.
...
llvm-svn: 81081
2009-09-05 11:34:46 +00:00
Benjamin Kramer
8691eecb91
Delete unused #include.
...
llvm-svn: 81076
2009-09-05 08:50:14 +00:00
Bob Wilson
7f20002993
Stabilize the order of live intervals in the priority_queue used by the
...
linear scan reg alloc. This fixes a problem I ran into where extracting
a function from a larger file caused the generated code to change (masking
the problem I was trying to debug) because the allocator behaved differently.
This changes the results for two X86 regression checks. stack-color-with-reg
is improved, with one less instruction, but pr3495 is worse, with one more
copy. As far as I can tell, these tests were just getting lucky or unlucky,
so I've changed the expected results.
llvm-svn: 81060
2009-09-05 01:19:16 +00:00
Devang Patel
f03667e20e
Detect VLAs.
...
Do not use DenseMap operator[] because it inserts new entry if lookup fails. Use find() to check an entry in a DenseMap first.
llvm-svn: 81058
2009-09-05 00:34:14 +00:00
Devang Patel
f5d5360065
Ignore malformed global variable debug info.
...
llvm-svn: 81055
2009-09-04 23:59:07 +00:00
Benjamin Kramer
21d15aa591
Prune #includes.
...
llvm-svn: 81052
2009-09-04 22:45:23 +00:00
Benjamin Kramer
865f7deab5
Remove an unneeded call to c_str().
...
llvm-svn: 81051
2009-09-04 22:44:03 +00:00
Kevin Enderby
9c0f7fc746
Added AsmToken enum constants to MCAsmLexer.h for '[', ']', '{', and '}' in
...
preparation of supporting other targets. Then changed the lexer to parse these
as tokens.
llvm-svn: 81050
2009-09-04 22:40:31 +00:00
Kevin Enderby
f92f9909c4
Added the AsmToken::Hash enum constant to MCAsmLexer.h in preparation of
...
supporting other targets. Changed the code to pass MCAsmInfo to the parser
and the lexer. Then changed the lexer to use CommentString from MCAsmInfo
instead of a literal '#' character.
llvm-svn: 81046
2009-09-04 21:45:34 +00:00
Devang Patel
a33c5a922d
While replacing an MDNode elment, properly update MDNode's operand list.
...
MDNode's operand list does not include all elements.
llvm-svn: 81045
2009-09-04 21:32:05 +00:00
Andreas Neustifter
b7d704dac3
Prevent warnings on compilers for which its not clear that assert won't return.
...
llvm-svn: 81044
2009-09-04 21:22:04 +00:00
Lang Hames
7af06f63bf
Removed yet another std::ostream reference.
...
llvm-svn: 81042
2009-09-04 21:03:07 +00:00
Lang Hames
bba76db033
Removed some junk and a std::ostream operator that was hanging around.
...
llvm-svn: 81041
2009-09-04 20:54:51 +00:00
Lang Hames
3fffe62177
Replaces uses of unsigned for indexes in LiveInterval and VNInfo with
...
a new class, MachineInstrIndex, which hides arithmetic details from
most clients. This is a step towards allowing the register allocator
to update/insert code during allocation.
llvm-svn: 81040
2009-09-04 20:41:11 +00:00
Dale Johannesen
d14b67e931
Test for llvm-gcc commit 81037.
...
llvm-svn: 81038
2009-09-04 20:19:09 +00:00
Andreas Neustifter
5673c0aace
Updated tests to use ProfileVerifer to test ProfileLoader and ProfileEstimator.
...
(Keep disabled test disabled until selfhosted build issue is resolved.)
llvm-svn: 81008
2009-09-04 17:21:59 +00:00
Andreas Neustifter
8f166f6a36
Cleaned up ProfileVerifierPass.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086219.html )
llvm-svn: 81007
2009-09-04 17:15:10 +00:00
Andreas Neustifter
18156bd75c
Converted MaximumSpanningTree algorithm to a generic template, this could go
...
into llvm/ADT.
llvm-svn: 81001
2009-09-04 12:34:44 +00:00
Dan Gohman
0c2477c26b
Include optional subclass flags, such as inbounds, nsw, etc., in the
...
Constant uniquing tables. This allows distinct ConstantExpr objects
with the same operation and different flags.
Even though a ConstantExpr "a + b" is either always overflowing or
never overflowing (due to being a ConstantExpr), it's still necessary
to be able to represent it both with and without overflow flags at
the same time within the IR, because the safety of the flag may
depend on the context of the use. If the constant really does overflow,
it wouldn't ever be safe to use with the flag set, however the use
may be in code that is never actually executed.
This also makes it possible to merge all the flags tests into a single test.
llvm-svn: 80998
2009-09-04 12:08:11 +00:00
Duncan Sands
bc74cae983
Use delete[] to match new[] (found by valgrind).
...
llvm-svn: 80997
2009-09-04 11:59:43 +00:00
Evan Cheng
3d2fce01aa
Run branch folding if if-converter make some transformations.
...
llvm-svn: 80994
2009-09-04 07:47:40 +00:00
Evan Cheng
fc4eef183b
Fix comment for consistency sake.
...
llvm-svn: 80993
2009-09-04 07:46:30 +00:00
Daniel Dunbar
30e30587eb
Remove stale greps.
...
llvm-svn: 80986
2009-09-04 05:07:52 +00:00
Daniel Dunbar
59eb5ef136
Update lib deps.
...
llvm-svn: 80985
2009-09-04 05:07:44 +00:00
Bob Wilson
36d8c75eca
Convert tests to FileCheck.
...
llvm-svn: 80983
2009-09-04 04:07:19 +00:00
Jim Grosbach
1eaa90b901
Whitespace cleanup
...
llvm-svn: 80978
2009-09-04 01:38:51 +00:00
Eric Christopher
a3438c8bc2
If there's a calling convention attach it to the rewind function call.
...
llvm-svn: 80976
2009-09-04 01:14:14 +00:00
Bob Wilson
e072f8eedb
Convert a test to FileCheck.
...
llvm-svn: 80975
2009-09-04 00:32:31 +00:00
Evan Cheng
1f6e5eb07b
Funky indentation.
...
llvm-svn: 80971
2009-09-03 23:54:22 +00:00
Daniel Dunbar
a48a2f6055
Revert "--- Reverse-merging r80908 into '.':", I already "fixed" this.
...
llvm-svn: 80970
2009-09-03 23:40:10 +00:00
Dan Gohman
e4ca02da1b
Revert 80959. It isn't sufficient to solve the full problem. And it
...
introduced regressions in the Ocaml bindings tests.
llvm-svn: 80969
2009-09-03 23:34:49 +00:00
Erick Tryzelaar
19e1eec248
Replace ocamlc tests with ocamlopt tests since they're less noisy.
...
There's a bug with ocamlc that uses "char*" instead of "const char*" for
global string variables. This causes g++ to be very noisy when linking
ocamlc programs. That's why the ocaml test used to cat to /dev/null.
ocamlopt doesn't have this problem, so we can get rid of the >/dev/null,
which may obscure some problems.
llvm-svn: 80968
2009-09-03 23:27:31 +00:00
Bill Wendling
92291f6ad0
--- Reverse-merging r80908 into '.':
...
D test/Analysis/Profiling
--- Reverse-merging r80907 into '.':
U lib/Analysis/ProfileInfoLoaderPass.cpp
Attempt to remove failure in the self-hosting build bot.
llvm-svn: 80966
2009-09-03 23:13:46 +00:00
Daniel Dunbar
bc52e4fe73
Add test for PR4873, which works for me.
...
llvm-svn: 80965
2009-09-03 22:57:02 +00:00
Dan Gohman
aa92dc1e61
LLVM currently represents floating-point negation as -0.0 - x. Fix
...
FastISel to recognize this pattern and emit a floating-point
negation using xor.
llvm-svn: 80963
2009-09-03 22:53:57 +00:00
David Goodwin
1d5d245453
Don't crash when target has no itineraries.
...
llvm-svn: 80962
2009-09-03 22:48:51 +00:00
Bill Wendling
ea0185fe91
If we've pushed registers onto the stack, but aren't adjusting the stack pointer
...
(i.e., there are no local variables and stuff), we still need to output FDE
information for the pushed registers.
llvm-svn: 80960
2009-09-03 22:19:22 +00:00
Dan Gohman
2a53b30f6d
Remove the API for creating ConstantExprs with the nsw, nuw, inbounds,
...
and exact flags. Because ConstantExprs are uniqued, creating an
expression with this flag causes all expressions with the same operands
to have the same flag, which may not be safe. Add, sub, mul, and sdiv
ConstantExprs are usually folded anyway, so the main interesting flag
here is inbounds, and the constant folder already knows how to set the
inbounds flag automatically in most cases, so there isn't an urgent need
for the API support.
This can be reconsidered in the future, but for now just removing these
API bits eliminates a source of potential trouble with little downside.
llvm-svn: 80959
2009-09-03 22:17:40 +00:00
David Goodwin
6c08cfcfa0
Create our own block initializer for kill fixups as the scheduling one wasn't doing the right thing.
...
llvm-svn: 80958
2009-09-03 22:15:25 +00:00
David Goodwin
d93c668f00
Calls clobber FPSCR.
...
llvm-svn: 80956
2009-09-03 22:12:28 +00:00
Ted Kremenek
9dee94f8fb
Make ImmutableMap/ImmutableSet quicker by only canonicalizing the tree after an
...
Add or Remove operation complete, and not while building the intermediate tree.
This trades a little bit more memory usage for less accesses to the FoldingSet. On a benchmark for the clang static analyzer, this shaves off another 13% of execution time when using field/array sensitivity.
llvm-svn: 80955
2009-09-03 22:07:30 +00:00
Daniel Dunbar
d8df76eaeb
Disable some parts of the profiling-tool-chain test, which is currently failing
...
on a self-hosted build (although it seems to work on non-self hosted). I'll work
with Andreas to figure this out.
llvm-svn: 80947
2009-09-03 21:09:53 +00:00
Daniel Dunbar
abf2bb683a
Remove dead greps.
...
llvm-svn: 80946
2009-09-03 20:59:02 +00:00
Bob Wilson
5c7d9ca53d
Overhaul the TwoAddressInstructionPass to simplify the logic, especially
...
for the complicated case where one register is tied to multiple destinations.
This avoids the extra scan of instruction operands that was introduced by
my recent change. I also pulled some code out into a separate
TryInstructionTransform method, added more comments, and renamed some
variables.
Besides all those changes, this takes care of a FIXME in the code regarding
an assumption about there being a single tied use of a register when
converting to a 3-address form. I'm not aware of cases where that assumption
is violated, but the code now only attempts to transform an instruction,
either by commuting its operands or by converting to a 3-address form,
for the simple case where there is a single pair of tied operands.
llvm-svn: 80945
2009-09-03 20:58:42 +00:00
Dan Gohman
ed8f32022e
Smallvectorize switchExitBlocks.
...
llvm-svn: 80942
2009-09-03 20:36:13 +00:00
Devang Patel
794a40dd61
There is not any need to copy metadata while merging modules.
...
llvm-svn: 80941
2009-09-03 20:35:57 +00:00
Dan Gohman
d0d5e685da
Recognize more opportunities to use SSE min and max instructions,
...
swapping the operands if necessary.
llvm-svn: 80940
2009-09-03 20:34:31 +00:00
Mon P Wang
eadd21ea3c
Test cases for vector shifts changes r80935
...
Changed the old vector shift test to use FileCheck
llvm-svn: 80936
2009-09-03 19:57:35 +00:00