Dale Johannesen [Fri, 18 Sep 2009 20:15:22 +0000 (20:15 +0000)]
Model the carry bit on ppc32. Without this we could
move a SUBFC (etc.) below the SUBFE (etc.) that consumed
the carry bit. Add missing ADDIC8, noticed along the way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82266
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 18 Sep 2009 19:59:53 +0000 (19:59 +0000)]
Add support for using the FLAGS result of or, xor, and and instructions
on x86, to avoid explicit test instructions. A few existing tests changed
due to arbitrary register allocation differences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82263
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Fri, 18 Sep 2009 19:35:23 +0000 (19:35 +0000)]
Added RCL and RCR (rotate left and right with a
carry bit) instructions to the Intel instruction
tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82260
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 18 Sep 2009 19:26:43 +0000 (19:26 +0000)]
Write and read metadata attachments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82259
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Fri, 18 Sep 2009 19:20:02 +0000 (19:20 +0000)]
Update malloc call creation code (AllocType is now the element type of the malloc, not the resulting type).
In getMallocArraySize(), fix bug in the case that array size is the product of 2 constants.
Extend isArrayMalloc() and getMallocArraySize() to handle case where malloc is used as char array.
Ensure that ArraySize in LowerAllocations::runOnBasicBlock() is correct type.
Extend Instruction::isSafeToSpeculativelyExecute() to handle malloc calls.
Add verification for malloc calls.
Reviewed by Dan Gohman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82257
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Sep 2009 18:34:29 +0000 (18:34 +0000)]
duncan points out the EH selector values are signed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82245
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Sep 2009 18:31:37 +0000 (18:31 +0000)]
convert some stuff to StringRef to avoid temporary std::strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82244
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Sep 2009 18:10:19 +0000 (18:10 +0000)]
add a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82236
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Sep 2009 18:08:55 +0000 (18:08 +0000)]
This file can need access to the X86 instruction enums when the table exceeds 32-bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82235
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 18 Sep 2009 17:48:05 +0000 (17:48 +0000)]
Fix a few more conversion warnings on 4.0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82232
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 18 Sep 2009 17:10:27 +0000 (17:10 +0000)]
Update to latest versions of config.guess and config.sub from
http://savannah.gnu.org/projects/config
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82229
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 18 Sep 2009 16:57:42 +0000 (16:57 +0000)]
Allow symbols to start from the digit if target requests it. This allows, e.g. pinning
variables to specified absolute address. Make use of this feature for MSP430.
This unbreaks PR4776.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82227
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 18 Sep 2009 16:46:16 +0000 (16:46 +0000)]
Stop using alloca.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82225
91177308-0d34-0410-b5e6-
96231b3b80d8
Xerxes Ranby [Fri, 18 Sep 2009 09:50:00 +0000 (09:50 +0000)]
Revert r82214 completely to fix build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82218
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 18 Sep 2009 08:26:06 +0000 (08:26 +0000)]
Revert r82214. It broke 403.gcc on x86_64 / Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82215
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 18 Sep 2009 08:16:04 +0000 (08:16 +0000)]
Fix a bug in sdisel switch lowering code. When it updates the phi nodes in switch successor blocks, it can introduce multiple phi operands of the same value from different blocks (and may not be on the predecessor list).
This can be seen on CodeGen/Generic/2006-09-06-SwitchLowering.ll. But it's not known to cause any real regression (but I have added an assertion for it now).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82214
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 18 Sep 2009 07:36:47 +0000 (07:36 +0000)]
Add newlines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82206
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 17 Sep 2009 23:56:41 +0000 (23:56 +0000)]
make this testcase check darwin32 also
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82182
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 17 Sep 2009 23:55:12 +0000 (23:55 +0000)]
rename test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82181
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 17 Sep 2009 23:54:54 +0000 (23:54 +0000)]
tolerate llvm.eh.selector.i64 on 32-bit systems and llvm.eh.selector.i32 on
64-bit systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82180
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 17 Sep 2009 23:54:26 +0000 (23:54 +0000)]
convert to filecheck
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82179
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 17 Sep 2009 23:42:06 +0000 (23:42 +0000)]
rename file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82178
91177308-0d34-0410-b5e6-
96231b3b80d8
Julien Lerouge [Thu, 17 Sep 2009 23:27:10 +0000 (23:27 +0000)]
Use __attribute__((__used__)) if GCC >= 3.1 (seems to be the oldest GCC
supporting this attribute).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82177
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 17 Sep 2009 23:05:07 +0000 (23:05 +0000)]
A testcase!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82176
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 17 Sep 2009 23:04:48 +0000 (23:04 +0000)]
Fix parsing of optional metadata for 'load', 'store' and 'alloc' instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82175
91177308-0d34-0410-b5e6-
96231b3b80d8
John McCall [Thu, 17 Sep 2009 20:35:18 +0000 (20:35 +0000)]
Fix a few places where PointerIntPair was using PointerLikeTypeTraits<PointerTy>
instead of the PtrTraits provided. Allows PointerIntPair to contain a
PointerUnion safely, as long as the bits add up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82163
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 17 Sep 2009 20:12:05 +0000 (20:12 +0000)]
Add an svn:ignore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82162
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 17 Sep 2009 18:49:52 +0000 (18:49 +0000)]
pass machinemoduleinfo down into getSymbolForDwarfGlobalReference,
currently unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82157
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 17 Sep 2009 18:05:20 +0000 (18:05 +0000)]
Teach ScalarEvolution how to reason about no-wrap flags on loops
where the induction variable has a non-unit stride, such as {0,+,2}, and
there are expressions such as {1,+,2} inside the loop formed with
or or add nsw operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82151
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 17 Sep 2009 17:57:26 +0000 (17:57 +0000)]
grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82150
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 17 Sep 2009 17:55:55 +0000 (17:55 +0000)]
grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82149
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 17:46:53 +0000 (17:46 +0000)]
Another try at fixing compile warnings on 4.0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82148
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 17 Sep 2009 14:51:57 +0000 (14:51 +0000)]
Initialize HasMetadata to zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82145
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 06:37:07 +0000 (06:37 +0000)]
Remove test cases using -regalloc=simple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82130
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 17 Sep 2009 05:48:07 +0000 (05:48 +0000)]
Remove simple regalloc. It has bit rotted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82127
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 17 Sep 2009 01:08:43 +0000 (01:08 +0000)]
add a version of the APFloat constructor that initializes to 0.0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82110
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 17 Sep 2009 00:57:15 +0000 (00:57 +0000)]
Fix PR4910: Broken logic in coalescer means when a physical register liveness is being shortened, the sub-registers were not. The symptom is the register allocator could not find a free register for this particular test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82108
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:14:44 +0000 (00:14 +0000)]
Some platforms may need malloc.h for alloca.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82100
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 17 Sep 2009 00:06:48 +0000 (00:06 +0000)]
Update CMake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82097
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 16 Sep 2009 22:59:28 +0000 (22:59 +0000)]
Added the LODS (load byte into register, usually
as part string parsing) instructions to the Intel
instruction tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82089
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 16 Sep 2009 22:38:48 +0000 (22:38 +0000)]
Add StringRef::{rfind, rsplit}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82087
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 16 Sep 2009 21:55:34 +0000 (21:55 +0000)]
Added the LAR (load segment access rights)
instructions to the Intel instruction tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82084
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 16 Sep 2009 21:50:07 +0000 (21:50 +0000)]
Added the LOOP family of instructions to the Intel
instruction tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82083
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 16 Sep 2009 21:11:23 +0000 (21:11 +0000)]
Added an alternate form of register-register CMP
to the Intel instruction tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82081
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Sep 2009 21:09:07 +0000 (21:09 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82080
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Sep 2009 20:39:11 +0000 (20:39 +0000)]
At iSel time, update DebugLoc based on debug info attached with an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82077
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 16 Sep 2009 20:25:11 +0000 (20:25 +0000)]
Add a new pass for doing late hoisting of floating-point and vector
constants out of loops. These aren't covered by the regular LICM
pass, because in LLVM IR constants don't require separate
instructions. They're not always covered by the MachineLICM pass
either, because it doesn't know how to unfold folded constant-pool
loads. This is somewhat experimental at this point, and off by
default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82076
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Sep 2009 20:21:17 +0000 (20:21 +0000)]
Print debug info attached with an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82075
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 16 Sep 2009 20:20:44 +0000 (20:20 +0000)]
Expand vector floating-point conversions not supported by NEON.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82074
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 16 Sep 2009 19:18:41 +0000 (19:18 +0000)]
Now that llc can read .ll files directly, teach it to recognize .ll as
an extension, so that the default output filename for foo.ll is foo.s,
not foo.ll.s
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82071
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Sep 2009 18:20:05 +0000 (18:20 +0000)]
Provide a way to extract location info from DILocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82064
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Sep 2009 18:18:06 +0000 (18:18 +0000)]
Parse debug info attached with an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82063
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Sep 2009 18:16:11 +0000 (18:16 +0000)]
Add an interface to attach debugging information with an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82062
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 16 Sep 2009 18:09:00 +0000 (18:09 +0000)]
Add llvm::Metadata to manage metadata used in a context.
This interface will be used to attach metadata with an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82060
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Wed, 16 Sep 2009 18:08:00 +0000 (18:08 +0000)]
Fixed some problems with the logic of parsing line comments by adding
isAtStartOfComment and using that instead in two places where a loop
to check if the char was in MAI.getCommentString().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82059
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Wed, 16 Sep 2009 17:18:29 +0000 (17:18 +0000)]
Fix incorrect assert that should be a user error for code like 'mov $0, %%eax'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82054
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 16 Sep 2009 16:50:24 +0000 (16:50 +0000)]
Change FoldPHIArgBinOpIntoPHI to decline folding if it would introduce two
phis, similar to the FoldPHIArgGEPIntoPHI change.
Also, delete some comments that don't reflect the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82053
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 16 Sep 2009 16:33:59 +0000 (16:33 +0000)]
Fix the comment in this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82051
91177308-0d34-0410-b5e6-
96231b3b80d8
Xerxes Ranby [Wed, 16 Sep 2009 14:36:35 +0000 (14:36 +0000)]
Make cmake generated llvm-config output correct JIT backend for non X86 targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82049
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 16 Sep 2009 11:43:12 +0000 (11:43 +0000)]
Don't sort the vector when it is empty. This should fix some expensive checking
failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82040
91177308-0d34-0410-b5e6-
96231b3b80d8
Andreas Neustifter [Wed, 16 Sep 2009 11:35:50 +0000 (11:35 +0000)]
Reapplied r81355 with the problems fixed.
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-
20090907/086737.html and
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-
20090907/086746.html)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82039
91177308-0d34-0410-b5e6-
96231b3b80d8
Xerxes Ranby [Wed, 16 Sep 2009 10:18:36 +0000 (10:18 +0000)]
updated lib/CodeGen/CMakeLists.txt to unbreak cmake build after r82018
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82038
91177308-0d34-0410-b5e6-
96231b3b80d8
Andreas Neustifter [Wed, 16 Sep 2009 09:26:52 +0000 (09:26 +0000)]
Preserve ProfileInfo during CodeGenPrepare.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82034
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 06:25:03 +0000 (06:25 +0000)]
move FnStubs/GVSTubs/HiddenGVStub handling out of the X86 asmprinter
and use MachineModuleInfoMachO instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82022
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 06:04:53 +0000 (06:04 +0000)]
revert a hunk of r82018 that wasn't supposed to go in yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82020
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 06:03:48 +0000 (06:03 +0000)]
add a new MachineModuleInfoMachO class, which is the per-module
stuff common across all macho targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82018
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 05:42:12 +0000 (05:42 +0000)]
apparently russians are really hard to sort or something!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82016
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 05:37:13 +0000 (05:37 +0000)]
I can sort, no really.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82015
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 05:36:54 +0000 (05:36 +0000)]
make more clear since it is sorted by last name now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82014
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 05:36:07 +0000 (05:36 +0000)]
Doug is now the code owner for most of the Clang frontend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82013
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 05:26:00 +0000 (05:26 +0000)]
the pointer MMI keeps will start out with object-file format specific stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82012
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 05:25:43 +0000 (05:25 +0000)]
tidy up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82011
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 05:20:33 +0000 (05:20 +0000)]
rearrange X86ATTAsmPrinter::doFinalization, making a scan of
the global variable list only happen for COFF targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82010
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 04:59:30 +0000 (04:59 +0000)]
Ted is christened as the owner of the clang static analyzer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82008
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 04:57:15 +0000 (04:57 +0000)]
remove the AsmPrinter::printMCInst hook hack now that
we have MCInstPrinter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82006
91177308-0d34-0410-b5e6-
96231b3b80d8
Shantonu Sen [Wed, 16 Sep 2009 04:44:00 +0000 (04:44 +0000)]
fix cmake build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81999
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 04:12:47 +0000 (04:12 +0000)]
use an accessor to simplify code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81997
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 16 Sep 2009 03:20:46 +0000 (03:20 +0000)]
Do not try and sink a load whose chain result has more than one use, when
trying to create RMW opportunities in the x86 backend. This can cause a
cycle to appear in the graph, since the other uses may eventually feed into
the TokenFactor we are sinking the load below.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81996
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 16 Sep 2009 02:57:13 +0000 (02:57 +0000)]
Added the ENTER instruction, which sets up a stack
frame, to the Intel instruction tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81995
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 16 Sep 2009 02:28:43 +0000 (02:28 +0000)]
Added the definitions for one-bit left shifts to
the Intel instruction tables.
The patterns will stay blank because ADD reg, reg
is faster, but having the encoding available is
useful for the disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81994
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 16 Sep 2009 02:01:52 +0000 (02:01 +0000)]
Don't sink gep operators through phi nodes if the result would require
more than one phi, since that leads to higher register pressure on
entry to the phi. This is especially problematic when the phi is in
a loop header, as it increases register pressure throughout the loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81993
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 16 Sep 2009 01:54:38 +0000 (01:54 +0000)]
Removed a few instructions that were already
covered by other definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81992
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 01:46:41 +0000 (01:46 +0000)]
Big change #1 for personality function references:
Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding
fields from MAI: they aren't part of the asm syntax, they are
related to the structure of the object file.
To replace their functionality, add a new
TLOF::getSymbolForDwarfGlobalReference method which asks targets
to decide how to reference a global from EH in a pc-relative way.
The default implementation just returns the symbol. The default
darwin implementation references the symbol through an indirect
$non_lazy_ptr stub. The bizarro x86-64 darwin specialization
handles the weird "foo@GOTPCREL+4" hack.
DwarfException.cpp now uses this to emit the reference to the
symbol in the right way, and this also eliminates another
horrible hack from DwarfException.cpp:
- if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL"))
- O << "-" << MAI->getPCSymbol();
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81991
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 16 Sep 2009 01:34:52 +0000 (01:34 +0000)]
lit: Add a custom test format for use in clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81987
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 01:29:11 +0000 (01:29 +0000)]
remove a dead variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81985
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 01:26:31 +0000 (01:26 +0000)]
add a helper method for creating MCSymbol and MCSymbolRefExpr at
the same time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81984
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 16 Sep 2009 01:13:52 +0000 (01:13 +0000)]
Added a variety of floating-point and SSE instructions.
All of these do not have patterns (they're for the
disassembler).
Many of the floating-point instructions will probably
be rolled into definitions that have patterns, and may
eventually be superseded by mdefs. So I put them
together and left a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81979
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 00:35:39 +0000 (00:35 +0000)]
inline AsmPrinter::getCurrentFunctionEHName into its only caller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81970
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 16 Sep 2009 00:32:15 +0000 (00:32 +0000)]
Expand some more vector operations not supported by Neon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81969
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 00:24:31 +0000 (00:24 +0000)]
remove a dead bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81968
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 00:17:39 +0000 (00:17 +0000)]
Eliminate AsmPrinter::EmitExternalGlobal, inlining its (now)
one implementation into its one caller. This eliminates a totally
awesome and gratuitous hack where we casted a Function* to
GlobalVariable*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81967
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 16 Sep 2009 00:17:28 +0000 (00:17 +0000)]
Neon does not support vector divide or remainder. Expand them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81966
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 00:14:19 +0000 (00:14 +0000)]
eliminate the PPC backend's implementation of EmitExternalGlobal
and use PersonalityPrefix/Suffix to achieve the same effect (like
the x86 backend).
This changes the code generated for ppc static mode, but guess what,
we were generating this before:
.byte 0x9B ; Personality (indirect pcrel sdata4)
.long ___gxx_personality_v0-. ; Personality
which is not correct! (it is not an 'indirect' reference).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81965
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 00:08:41 +0000 (00:08 +0000)]
eliminate the horrid AsmPrinter::getGlobalLinkName method, inlining
it into all of its call sites and simplifying them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81962
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 16 Sep 2009 00:08:07 +0000 (00:08 +0000)]
simplify some code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81961
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 15 Sep 2009 23:55:57 +0000 (23:55 +0000)]
Expand all v2f64 arithmetic operations for Neon.
Radar
7200803. (This should also fix the
SingleSource/UnitTests/Vector/sumarray-dbl test.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81959
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 15 Sep 2009 23:40:07 +0000 (23:40 +0000)]
Put back non-obsolete -f sections for 'opt'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81954
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Tue, 15 Sep 2009 23:37:51 +0000 (23:37 +0000)]
Added far return instructions (that is, returns to
code in other segments) to the Intel instruction
tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81953
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 15 Sep 2009 23:11:32 +0000 (23:11 +0000)]
remove some horrible MAI hooks which fortunately turn out to be always empty.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81946
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 15 Sep 2009 22:58:35 +0000 (22:58 +0000)]
strength reduce a call to PrintRelDirective(true).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81942
91177308-0d34-0410-b5e6-
96231b3b80d8