Michael J. Spencer [Mon, 8 Nov 2010 20:56:32 +0000 (20:56 +0000)]
Remove contributor names as per coding statndard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118442
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 8 Nov 2010 20:56:28 +0000 (20:56 +0000)]
Add an additional test for icmp of select folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118441
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 20:26:19 +0000 (20:26 +0000)]
Re-introduce the MaxLookup limit to BasicAliasAnalysis'
pointsToConstantMemory code to guard against possible
compile time slowdowns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118440
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 20:20:11 +0000 (20:20 +0000)]
Add a testcase for a call which BasicAA says only accesses memory through
its arguments and which TBAA says doesn't write to memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118439
91177308-0d34-0410-b5e6-
96231b3b80d8
Wesley Peck [Mon, 8 Nov 2010 19:40:01 +0000 (19:40 +0000)]
Adding working version of assembly parser for the MBlaze backend
Major cleanup of whitespace and formatting issues in MBlaze backend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118434
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 19:24:47 +0000 (19:24 +0000)]
Fix a thinko that Duncan spotted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118430
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 8 Nov 2010 19:17:22 +0000 (19:17 +0000)]
Revert 118422 in search of bot verdancy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118429
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 8 Nov 2010 18:28:34 +0000 (18:28 +0000)]
Document parameters. Fix typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118424
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 8 Nov 2010 18:02:08 +0000 (18:02 +0000)]
Adds support for spilling previously allocated live intervals to
handle cases in which a register is unavailable for spill code.
Adds LiveIntervalUnion::extract. While processing interferences on a
live virtual register, reuses the same Query object for each
physcial reg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118423
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Mon, 8 Nov 2010 17:58:07 +0000 (17:58 +0000)]
Support -mcpu=cortex-a8 in ARM attributes - Has Fixme. 1 Test modified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118422
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 8 Nov 2010 17:53:02 +0000 (17:53 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118421
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 17:12:04 +0000 (17:12 +0000)]
Make FunctionAttrs TBAA-aware.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118417
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 17:10:22 +0000 (17:10 +0000)]
Implement getModRefBehavior for TypeBasedAliasAnalysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118416
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Mon, 8 Nov 2010 16:47:27 +0000 (16:47 +0000)]
Complete listing of ARM/MC/ELF relocation enums
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118413
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 16:45:26 +0000 (16:45 +0000)]
Extend the AliasAnalysis::pointsToConstantMemory interface to allow it
to optionally look for constant or local (alloca) memory.
Teach BasicAliasAnalysis::pointsToConstantMemory to look through Select
and Phi nodes, and to support looking for local memory.
Remove FunctionAttrs' PointsToLocalOrConstantMemory function, now that
AliasAnalysis knows all the tricks that it knew.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118412
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 16:11:19 +0000 (16:11 +0000)]
Delete getIntrinsicModRefBehavior. Clients can just use the normal
getModRefBehavior now, since it now understands intrinsics as well
as normal functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118411
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 16:10:15 +0000 (16:10 +0000)]
Make FunctionAttrs use AliasAnalysis::getModRefBehavior, now that it
knows about intrinsic functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118410
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 16:08:43 +0000 (16:08 +0000)]
Teach BasicAliasAnalysis::getModRefBehavior(const Function *F)
to analyze intrinsic functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118409
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Nov 2010 15:34:42 +0000 (15:34 +0000)]
Add comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118408
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 8 Nov 2010 10:52:42 +0000 (10:52 +0000)]
svn:ignore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118405
91177308-0d34-0410-b5e6-
96231b3b80d8
Che-Liang Chiou [Mon, 8 Nov 2010 03:06:08 +0000 (03:06 +0000)]
Add generating function declaration for PTX
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118398
91177308-0d34-0410-b5e6-
96231b3b80d8
Che-Liang Chiou [Mon, 8 Nov 2010 03:00:52 +0000 (03:00 +0000)]
Add physical register counting functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118397
91177308-0d34-0410-b5e6-
96231b3b80d8
Che-Liang Chiou [Mon, 8 Nov 2010 02:58:44 +0000 (02:58 +0000)]
Add a dummy PTXMCAsmStreamer class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118396
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 8 Nov 2010 02:47:59 +0000 (02:47 +0000)]
Set default flags for .rodata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118395
91177308-0d34-0410-b5e6-
96231b3b80d8
Che-Liang Chiou [Mon, 8 Nov 2010 02:21:17 +0000 (02:21 +0000)]
Add registry hook for assembly text output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118394
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 8 Nov 2010 00:39:58 +0000 (00:39 +0000)]
Make RegList an ASM operand so that TableGen will generate code for it. This is
an initial implementation and may change once reglists are fully fleshed out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118390
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 8 Nov 2010 00:32:40 +0000 (00:32 +0000)]
Revert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118389
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sun, 7 Nov 2010 16:46:25 +0000 (16:46 +0000)]
Add simplification of floating point comparisons with the result
of a select instruction, the same as already exists for integer
comparisons.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118379
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sun, 7 Nov 2010 16:12:23 +0000 (16:12 +0000)]
Fix a README item: when doing a comparison with the result
of a select instruction, see if doing the compare with the
true and false values of the select gives the same result.
If so, that can be used as the value of the comparison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118378
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 7 Nov 2010 15:03:27 +0000 (15:03 +0000)]
Speed up AddSectionToTheEnd. It was walking all fragments in all sections.
This is really slow with we have 1000s of sections each with a corresponding
relocation section. Also, it is only used by the ELF writer to add
basic data, so there is no need to force a new layout pass.
Should fix PR8563.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118377
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 7 Nov 2010 13:48:10 +0000 (13:48 +0000)]
typos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118376
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 7 Nov 2010 13:08:28 +0000 (13:08 +0000)]
In this context, a reglist is a reg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118375
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sun, 7 Nov 2010 06:09:02 +0000 (06:09 +0000)]
Fix memory leak in StringRef::edit_distance(). 'Allocated' could be leaked on an early return.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118370
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Sun, 7 Nov 2010 04:58:48 +0000 (04:58 +0000)]
Testcase for llvm-gcc 118368.
8629268.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118369
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 7 Nov 2010 04:36:50 +0000 (04:36 +0000)]
Add method for checking if a path is a symbolic link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118367
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 7 Nov 2010 02:07:12 +0000 (02:07 +0000)]
Relax dwarf line fragments. This fixes a crash in the included testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118365
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 22:41:18 +0000 (22:41 +0000)]
implement aliases for div/idiv that have an explicit A register operand,
implementing rdar://
8431864
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118364
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 6 Nov 2010 22:36:58 +0000 (22:36 +0000)]
Add support for parsing register lists. We can't use a bitfield to keep track of
the registers, because the register numbers may be much greater than the number
of bits available in the machine's register.
I extracted the register list verification code out of the actual parsing of the
registers. This made checking for errors much easier. It also limits the number
of warnings that would be emitted for cascading infractions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118363
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 22:35:34 +0000 (22:35 +0000)]
add aliases for movs between seg registers and mem. There are multiple
different forms of this instruction (movw/movl/movq) which we reported
as being ambiguous. Since they all do the same thing, gas just picks the
one with the shortest encoding. Follow its lead here.
This implements rdar://
8208615
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118362
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 22:25:39 +0000 (22:25 +0000)]
move the "sh[lr]d op,op" -> "shld $1, op,op" aliases to the .td file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118361
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 6 Nov 2010 22:19:43 +0000 (22:19 +0000)]
Return the base register of a register list for the "getReg()" method. This is
to satisfy the ClassifyOperand method of the Asm matcher without having to add a
RegList type to every back-end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118360
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 22:06:03 +0000 (22:06 +0000)]
pass literals like $$1 through to the asm matcher. This isn't right yet, but doesn't hurt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118359
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 22:05:43 +0000 (22:05 +0000)]
work-in-progress
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118358
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 6 Nov 2010 21:42:12 +0000 (21:42 +0000)]
General cleanup:
- Make ARMOperand a class so that some things are internal to the class.
- Reformatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118357
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 21:37:06 +0000 (21:37 +0000)]
go to great lengths to work around a GAS bug my previous patch
exposed:
GAS doesn't accept "fcomip %st(1)", it requires "fcomip %st(1), %st(0)"
even though st(0) is implicit in all other fp stack instructions.
Fortunately, there is an alias for fcomip named "fcompi" and gas does
accept the default argument for the alias (boggle!).
As such, switch the canonical form of this instruction to "pi" instead
of "ip". This makes the code generator and disassembler generate pi,
avoiding the gas bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118356
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 21:23:40 +0000 (21:23 +0000)]
rework the rotate-by-1 instructions to be defined like the
shift-by-1 instructions, where the asmstring doesn't contain
the implicit 1. It turns out that a bunch of these rotate
instructions were completely broken because they used 1
instead of $1.
This fixes assembly mismatches on "rclb $1, %bl" and friends,
where we used to generate the 3 byte form, we now generate the
proper 2-byte form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118355
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 20:55:09 +0000 (20:55 +0000)]
change the fp comparison instructions to not have %st0 explicitly
listed in its asm string, for consistency with the other similar
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118354
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 20:47:38 +0000 (20:47 +0000)]
move the plethora of fp stack aliases to the .td file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118353
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 19:57:21 +0000 (19:57 +0000)]
add (and document) the ability for alias results to have
fixed physical registers. Start moving fp comparison
aliases to the .td file (which default to using %st1 if
nothing is specified).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118352
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 6 Nov 2010 19:56:04 +0000 (19:56 +0000)]
Add a RegList (register list) object to ARMOperand. It will be used soon to hold
(surprise!) a list of registers. Register lists are consecutive, so we only need
to record the start register plus the number of registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118351
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 19:25:43 +0000 (19:25 +0000)]
generalize alias support to allow the result of an alias to
add fixed immediate values. Move the aad and aam aliases to
use this, and document it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118350
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 18:58:32 +0000 (18:58 +0000)]
move fnstsw aliases to .td file, fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118349
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 18:52:40 +0000 (18:52 +0000)]
move in/out aliases to the .td files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118348
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 18:44:26 +0000 (18:44 +0000)]
move sldt, imul, and movabsq aliases from c++ to .td file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118347
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 18:28:02 +0000 (18:28 +0000)]
correct suffix matching to search for s/l/t suffixes on
floating point stack instructions instead of looking for b/w/l/q.
This fixes issues where we'd accidentally match fistp to fistpl,
when it is in fact an ambiguous instruction.
This changes the behavior of llvm-mc to reject fstp, which was the
correct fix for rdar://
8456389:
t.s:1:1: error: ambiguous instructions require an explicit suffix (could be 'fstps', 'fstpl', or 'fstpt')
fstp (%rax)
it also causes us to correctly reject fistp and fist, which addresses
PR8528:
t.s:2:1: error: ambiguous instructions require an explicit suffix (could be 'fistps', or 'fistpl')
fistp (%rax)
^
t.s:3:1: error: ambiguous instructions require an explicit suffix (could be 'fists', or 'fistl')
fist (%rax)
^
Thanks to Ismail Donmez for tracking down the issue here!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118346
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 6 Nov 2010 11:45:59 +0000 (11:45 +0000)]
Prune includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118342
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 6 Nov 2010 10:51:53 +0000 (10:51 +0000)]
Fix grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118341
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 6 Nov 2010 10:48:18 +0000 (10:48 +0000)]
Fix grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118340
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 6 Nov 2010 10:45:34 +0000 (10:45 +0000)]
MatchRegisterName() returns 0 if it can't match the register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118339
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 6 Nov 2010 10:40:24 +0000 (10:40 +0000)]
Use TryParseRegister() instead of MatchRegisterName(). The former returns -1
while the latter doesn't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118338
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 6 Nov 2010 10:37:16 +0000 (10:37 +0000)]
Add a note.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118337
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 08:30:26 +0000 (08:30 +0000)]
document instalias.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118335
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 08:20:59 +0000 (08:20 +0000)]
fix a bug where we had an implicit assumption that the
result instruction operand numbering matched the result pattern.
Fixing this allows us to move the xchg/test aliases to the .td file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118334
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 6 Nov 2010 07:53:11 +0000 (07:53 +0000)]
Make sure we have movw on the target before using it.
Fixes 8559.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118333
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 07:48:45 +0000 (07:48 +0000)]
move the lcall/ljmp aliases to the .td file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118332
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 07:34:58 +0000 (07:34 +0000)]
move the "movsd -> movsl" alias to the .td files,
tidy up the movsx and movzx aliases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118331
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 07:31:43 +0000 (07:31 +0000)]
fix some bugs in the alias support, unblocking changing of "clr" aliases
from c++ hacks to proper .td InstAlias definitions. Change them!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118330
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 07:14:44 +0000 (07:14 +0000)]
Reimplement BuildResultOperands to be in terms of the result instruction's
operand list instead of the operand list redundantly declared on the alias
or instruction.
With this change, we finally remove the ins/outs list on the alias. Before:
def : InstAlias<(outs GR16:$dst), (ins GR8 :$src),
"movsx $src, $dst",
(MOVSX16rr8W GR16:$dst, GR8:$src)>;
After:
def : InstAlias<"movsx $src, $dst",
(MOVSX16rr8W GR16:$dst, GR8:$src)>;
This also makes the alias mechanism more general and powerful, which will
be exploited in subsequent patches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118329
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 07:06:09 +0000 (07:06 +0000)]
implement more checking to reject things like:
(someinst GR16:$foo, GR32:$foo)
Reimplement BuildAliasOperandReference to be correctly
based on the names of operands in the result pattern,
instead of on the instruction operand definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118328
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 06:54:38 +0000 (06:54 +0000)]
decode and validate instruction alias result definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118327
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 06:45:08 +0000 (06:45 +0000)]
simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118326
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 06:43:11 +0000 (06:43 +0000)]
fix another fixme, replacing a string with a semantic pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118325
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 6 Nov 2010 06:39:47 +0000 (06:39 +0000)]
disolve a hack, having CodeGenInstAlias decode the alias in the .td
file instead of the asmmatcher.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118324
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 22:40:53 +0000 (22:40 +0000)]
Hook up the '.code {16|32}' directive to the streamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118310
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 22:40:09 +0000 (22:40 +0000)]
Add '.code 32' assembler directive to MC streamers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118309
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 22:33:53 +0000 (22:33 +0000)]
Hook up the '.thumb_func' directive to the streamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118307
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 22:11:33 +0000 (22:11 +0000)]
Fix past-o.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118304
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 22:08:08 +0000 (22:08 +0000)]
MC'ize the '.code 16' and '.thumb_func' ARM directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118301
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 5 Nov 2010 21:57:54 +0000 (21:57 +0000)]
Disallow the certain NEON modified-immediate forms when generating vorr or vbic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118300
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 20:41:12 +0000 (20:41 +0000)]
Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118296
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 20:34:24 +0000 (20:34 +0000)]
MC'ize simple ARMConstantValue entry emission (with a FIXME).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118295
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 5 Nov 2010 19:56:38 +0000 (19:56 +0000)]
Put class into an anonymous namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118294
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 5 Nov 2010 19:27:46 +0000 (19:27 +0000)]
Add codegen and encoding support for the immediate form of vbic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118291
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 18:50:35 +0000 (18:50 +0000)]
Enable MachO writing for ARM/Darwin. Lots of stuff still doesn't work
(relocations, e.g.), but this will allow simple things to flow through.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118289
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 18:48:58 +0000 (18:48 +0000)]
Allow targets to specify the MachO CPUType/CPUSubtype information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118288
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 18:47:32 +0000 (18:47 +0000)]
syntaxunified directive is a no-op for MachO writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118287
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 17:48:05 +0000 (17:48 +0000)]
Add v5 and v7 ARM CPU subtype values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118281
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 17:37:13 +0000 (17:37 +0000)]
Add FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118280
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 5 Nov 2010 15:20:29 +0000 (15:20 +0000)]
When passing a parameter using the 'byval' mechanism, inline code needs to be used
to perform the copy, which may be of lots of memory [*]. It would be good if the
fall-back code generated something reasonable, i.e. did the copy in a loop, rather
than vast numbers of loads and stores. Add a note about this. Currently target
specific code seems to always kick in so this is more of a theoretical issue rather
than a practical one now that X86 has been fixed.
[*] It's amazing how often people pass mega-byte long arrays by copy...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118275
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 5 Nov 2010 07:19:09 +0000 (07:19 +0000)]
CrashRecoveryContext: Add RunSafelyOnThread helper function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118272
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 4 Nov 2010 21:16:46 +0000 (21:16 +0000)]
When passing a huge parameter using the byval mechanism, a long
sequence of loads and stores was being generated to perform the
copy on the x86 targets if the parameter was less than 4 byte
aligned, causing llc to use up vast amounts of memory and time.
Use a "rep movs" form instead. PR7170.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118260
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 4 Nov 2010 18:45:27 +0000 (18:45 +0000)]
Use arrays instead of constant-sized SmallVectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118257
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 4 Nov 2010 18:17:08 +0000 (18:17 +0000)]
Add 118023 back, but with proper spelling for .uleb128/.sleb128.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118254
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 4 Nov 2010 17:04:24 +0000 (17:04 +0000)]
Revert previous patch. Some targets don't support uleb and say
they do :-(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118250
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 4 Nov 2010 16:32:18 +0000 (16:32 +0000)]
MCize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118249
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 4 Nov 2010 15:01:38 +0000 (15:01 +0000)]
Introduce DIBuilder. It is intended to be a front-end friendly interface to emit debuggging information entries in LLVM IR.
To create debugging information for a pointer, using DIBUilder front-end just needs
DBuilder.CreatePointerType(Ty, Size);
instead of
DebugFactory.CreateDerivedType(llvm::dwarf::DW_TAG_pointer_type,
TheCU, "", getOrCreateMainFile(),
0, Size, 0, 0, 0, OCTy);
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118248
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 4 Nov 2010 14:56:34 +0000 (14:56 +0000)]
Add getFile() to get DIFile of a DIType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118247
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 4 Nov 2010 10:49:57 +0000 (10:49 +0000)]
In the calling convention logic, ValVT is always a legal type,
and as such can be represented by an MVT - the more complicated
EVT is not needed. Use MVT for ValVT everywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118245
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 4 Nov 2010 05:19:35 +0000 (05:19 +0000)]
Fix @llvm.prefetch isel. Selecting between pld / pldw using the first immediate rw. There is currently no intrinsic that matches to pli.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118237
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Nov 2010 02:11:18 +0000 (02:11 +0000)]
partition operand processing between aliases and instructions.
Right now the code is partitioned but the behavior is the same.
This should be improved in the near future. This removes some
uses of TheOperandList.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118232
91177308-0d34-0410-b5e6-
96231b3b80d8