Chandler Carruth
0523f41841
Clean up comments that I missed when changing the triple representation.
...
Somehow, I even missed the ones I wrote just the other day...
Thanks to Matt for the code review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151045 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-21 08:31:18 +00:00
Andrew Trick
19273aec44
Clear virtual registers after they are no longer referenced.
...
Passes after RegAlloc should be able to rely on MRI->getNumVirtRegs() == 0.
This makes sharing code for pre/postRA passes more robust.
Now, to check if a pass is running before the RA pipeline begins, use MRI->isSSA().
To check if a pass is running after the RA pipeline ends, use !MRI->getNumVirtRegs().
PEI resets virtual regs when it's done scavenging.
PTX will either have to provide its own PEI pass or assign physregs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151032 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-21 04:51:23 +00:00
Andrew Trick
e8ccb04913
StackSlotColoring does not use a VirtRegMap
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151031 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-21 04:51:19 +00:00
Rafael Espindola
705b48d960
Use more idiomatic assert.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151026 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-21 03:51:14 +00:00
Rafael Espindola
161fb5d936
Avoid warning on non assert builds.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151025 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-21 03:48:30 +00:00
Chandler Carruth
124e51c0d2
Switch the llvm::Triple class to immediately parse the triple string on
...
construction. Simplify its interface, implementation, and users
accordingly as there is no longer an 'uninitialized' state to check for.
Also, fixes a bug lurking in the interface as there was one method that
didn't correctly check for initialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151024 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-21 03:39:36 +00:00
Rafael Espindola
4b04578d65
It turns out that with the current scev organization ReuseOrCreateCast cannot
...
know where users will be added. Because of this, it cannot use
Builder.GetInsertPoint at all.
This patch
* removes the FIXME about adding the assert.
* adds a comment explaining hy we don't have one.
* removes a broken logic that only works for some callers and is not needed
since r150884.
* adds an assert to caller that would have caught the bug fixed by r150884.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151015 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-21 01:19:51 +00:00
Lang Hames
fd6d3217d3
Fix some bugs in HMEditor's moveAllOperandsInto logic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151006 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-21 00:00:36 +00:00
Nick Lewycky
0ef0557ab5
Check for the correct size in the invariant marker.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151003 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 23:32:26 +00:00
Evan Cheng
01b623c8c2
Fix machine-cp by having it to check sub-register indicies. e.g.
...
ecx = mov eax
al = mov ch
The second copy is not a nop because the sub-indices of ecx,ch is not the
same of that of eax/al.
Re-enabled machine-cp.
PR11940
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151002 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 23:28:17 +00:00
Chad Rosier
acb6f5096f
Fix 80-column violation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150998 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 23:13:17 +00:00
Benjamin Kramer
6ad48f4137
InstCombine: Removing the base from the address calculation is only safe when the GEPs are inbounds.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150978 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 18:45:10 +00:00
Eric Christopher
1c7f744bbb
Make this a bit prettier and more obvious when a derived type isn't
...
derived from anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150975 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 18:04:39 +00:00
Eric Christopher
dc1eeb89f2
If a derived type is also a composite type, print that information
...
too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150974 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 18:04:35 +00:00
Eric Christopher
9f90e8760f
Add support for runtime languages on our forward declarations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150973 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 18:04:14 +00:00
Benjamin Kramer
9bb40853ee
InstCombine: When comparing two GEPs that were derived from the same base pointer but use different types, expand the offset calculation and to the compare on the offset if profitable.
...
This came up in SmallVector code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150962 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 15:07:47 +00:00
Benjamin Kramer
d2348639e6
InstCombine: Make OptimizePointerDifference more aggressive.
...
- Ignore pointer casts.
- Also expand GEPs that aren't constantexprs when they have one use or only constant indices.
- We now compile "&foo[i] - &foo[j]" into "i - j".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150961 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 14:34:57 +00:00
James Molloy
6259dcdc57
Teach the DAGCombiner that certain loadext nodes followed by ANDs can be converted to zeroexts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150957 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 12:02:38 +00:00
James Molloy
873fd5f753
Improve generated code for extending loads and some trunc stores on ARM.
...
Teach TargetSelectionDAG about lengthening loads for vector types and set v4i8 as legal. Allow FP_TO_UINT for v4i16 from v4i32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150956 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 09:24:05 +00:00
Evan Cheng
df7e8bd702
Make post-ra tail duplication bundle safe. No test case as recent codegen
...
flow changes have already hidden the bug. rdar://10893812
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150949 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 07:51:58 +00:00
Nick Lewycky
7fa7677705
Rename class Evaluate to Evaluator and put it in an anonymous namespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150947 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 03:25:59 +00:00
Chris Lattner
b053fc1c92
fold comparisons of gep'd alloca points with null to false,
...
implementing PR12013. We now compile the testcase to:
__Z4testv: ## @_Z4testv
## BB#0: ## %_ZN4llvm15SmallVectorImplIiE9push_backERKi.exit
pushq %rbx
subq $64, %rsp
leaq 32(%rsp), %rbx
movq %rbx, (%rsp)
leaq 64(%rsp), %rax
movq %rax, 16(%rsp)
movl $1, 32(%rsp)
leaq 36(%rsp), %rax
movq %rax, 8(%rsp)
leaq (%rsp), %rdi
callq __Z1gRN4llvm11SmallVectorIiLj8EEE
movq (%rsp), %rdi
cmpq %rbx, %rdi
je LBB0_2
## BB#1:
callq _free
LBB0_2: ## %_ZN4llvm11SmallVectorIiLj8EED1Ev.exit
addq $64, %rsp
popq %rbx
ret
instead of:
__Z4testv: ## @_Z4testv
## BB#0:
pushq %rbx
subq $64, %rsp
xorl %eax, %eax
leaq (%rsp), %rbx
addq $32, %rbx
movq %rbx, (%rsp)
movq %rbx, 8(%rsp)
leaq 64(%rsp), %rcx
movq %rcx, 16(%rsp)
je LBB0_2
## BB#1:
movl $1, 32(%rsp)
movq %rbx, %rax
LBB0_2: ## %_ZN4llvm15SmallVectorImplIiE9push_backERKi.exit
addq $4, %rax
movq %rax, 8(%rsp)
leaq (%rsp), %rdi
callq __Z1gRN4llvm11SmallVectorIiLj8EEE
movq (%rsp), %rdi
cmpq %rbx, %rdi
je LBB0_4
## BB#3:
callq _free
LBB0_4: ## %_ZN4llvm11SmallVectorIiLj8EED1Ev.exit
addq $64, %rsp
popq %rbx
ret
This doesn't shrink clang noticably though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150944 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 00:42:49 +00:00
Chandler Carruth
cceb8f44a0
Move constructors out-of-line and flesh out their documentation. No
...
functionality changed. This is in preparation for some refactoring of
how this class behaves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150941 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 00:02:47 +00:00
Nick Lewycky
23ec5d7759
Move EvaluateFunction and EvaluateBlock into a class, and make the class store
...
the information that they pass around between them. No functionality change!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150939 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 23:26:27 +00:00
Benjamin Kramer
7db76e7ca3
Silence operator precedence warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150921 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 12:25:07 +00:00
Ahmed Charles
b0934ab7d8
Remove dead code. Improve llvm_unreachable text. Simplify some control flow.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150918 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 11:37:01 +00:00
Ahmed Charles
d7ace3f8d1
StringRef'ize EmitSourceFileHeader().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150917 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 11:35:20 +00:00
Craig Topper
1bf724b28b
Remove some unneeded includes and fix ordering in X86ISelLowering.cpp. Remove unneeded 'using namespace'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150916 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 07:15:48 +00:00
Lang Hames
6aceab1392
Add machinery for pushing live ranges onto bundle starts while bundling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150915 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 07:13:05 +00:00
Lang Hames
4a0b2d658a
Simplify moveEnteringDownFrom rules.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150914 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 06:13:56 +00:00
Craig Topper
dd637ae0c3
Unify all shuffle mask checking functions take a mask and VT instead of VectorShuffleSDNode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150913 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 05:41:45 +00:00
Lang Hames
038d2d5ced
Skip through instructions rather than operands when looking for last use slot.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150912 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 04:38:25 +00:00
NAKAMURA Takumi
752b2f0d88
APFloat::toString(): Fix overrun at scanning.
...
FYI, clang/test/SemaTemplate/template-id-printing.cpp had been failing due to it on cygwin-clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150911 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 03:18:29 +00:00
Lang Hames
ac027144e8
Fix TODO and trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150910 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 03:09:55 +00:00
Lang Hames
55fed62c9e
Defer sanity checks on live intervals until after all have been updated. Hold (LiveInterval, LiveRange) pairs to update, rather than vregs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150909 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 03:00:30 +00:00
Craig Topper
5aaffa8470
Make a bunch of X86ISelLowering shuffle functions static now that they are no longer needed by isel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150908 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 02:53:47 +00:00
Jia Liu
9ad012a29c
comment fix ARM.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150904 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 02:04:03 +00:00
Jia Liu
44de83a7f6
some comment fix for X86 and ARM
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150902 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 02:03:36 +00:00
Craig Topper
28a713b20a
Add vmfunc instruction to X86 assembler and disassembler.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150899 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 01:39:49 +00:00
Ahmed Charles
507329912a
Fix issue with bitwise and precedence.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150897 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 22:56:41 +00:00
Talin
1a4b19ef9b
Hashing.h - utilities for hashing various data types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150890 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 21:00:49 +00:00
Rafael Espindola
b155c23f98
White space fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150886 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 19:46:02 +00:00
Rafael Espindola
f3b32b3572
Temporarily disable this assert. Looks like it found a similar issue when
...
building bullet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150885 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 17:51:43 +00:00
Rafael Espindola
ef4c80e07b
Don't skip debug instructions when looking for the insertion point of
...
the cast. If we do, we can end up with
inst1
--------------- < Insertion point
dbg inst
new inst
instead of the desired
inst1
new inst
--------------- < Insertion point
dbg inst
Another option would be for InsertNoopCastOfTo (or its callers) to move the
insertion point and we would end up with
inst1
dbg inst
new inst
--------------- < Insertion point
but that complicates the callers. This fixes PR12018 (and firefox's build).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150884 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 17:22:58 +00:00
Jia Liu
31d157ae1a
Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150878 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 12:03:15 +00:00
Craig Topper
a771330366
Add X86InstrSVM.td that I forgot to add in r150873.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150874 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 08:34:12 +00:00
Craig Topper
9e3d0b3351
Add X86 assembler and disassembler support for AMD SVM instructions. Original patch by Kay Tiong Khoo. Few tweaks by me for code density and to reduce replication.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150873 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 08:19:49 +00:00
Chandler Carruth
0a85771de8
Trivial cleanup to group the generic 'armvN' cases with the 'arm' case,
...
etc. No functionality changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150867 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 04:34:17 +00:00
Eli Friedman
2c3acb0e27
Fix a rather nasty regression from r150690: LHS != RHS does not imply LHS->stripPointerCasts() != RHS->stripPointerCasts().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150863 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-18 03:29:25 +00:00
Lang Hames
ecb50624d1
Bring HMEditor into line with LLVM coding standards.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150851 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 23:43:40 +00:00
Eric Christopher
9b5d6b860c
Ignore the lifetime intrinsics in fast-isel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150848 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 23:03:39 +00:00
Jakob Stoklund Olesen
0b923d9ee9
Don't print out pointer values in SUnit::dump().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150842 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 21:44:51 +00:00
Matt Beaumont-Gay
0310038d5a
Sink variable into assert
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150841 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 21:40:48 +00:00
Lang Hames
fbc8dd306a
Add support for regmask slots to HMEditor. Also fixes a comment error.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150840 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 21:29:41 +00:00
Kevin Enderby
d9165eb02f
Fix typo in comment ldopen() -> dlopen().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150836 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 19:26:00 +00:00
Jakob Stoklund Olesen
2420b558de
Handle regmask operands in ARMInstrInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150833 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 19:23:15 +00:00
Kevin Enderby
fc0d7400bc
Put back the initializing the targets in the disassembler API with a comment as
...
to why this is needed. This broke the darwin's otool(1) program. This change
was made in r144385.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150832 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 19:18:29 +00:00
Jakob Stoklund Olesen
8c3b87cf19
Fix ARMBaseInstrInfo::getInstrLatency for calls.
...
Calls always clobber CPSR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150831 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 19:07:59 +00:00
Jakob Stoklund Olesen
d9f0ff56a1
Transfer regmasks to MRI.
...
MRI keeps track of which physregs have been used. Make sure it gets
updated with all the regmask-clobbered registers.
Delete the closePhysRegsUsed() function which isn't necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150830 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 19:07:56 +00:00
Dan Gohman
dbe266be35
Calls and invokes with the new clang.arc.no_objc_arc_exceptions
...
metadata may still unwind, but only in ways that the ARC
optimizer doesn't need to consider. This permits more
aggressive optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150829 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 18:59:53 +00:00
Lang Hames
3dc7c5138d
Refactor 'handleMove' code in live intervals. Clients of LiveIntervals won't see
...
any changes.
Internally this adds a private inner class HMEditor, to LiveIntervals. HMEditor provides
an API for updating live intervals when code is moved or bundled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150826 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 18:44:18 +00:00
Dan Gohman
ebad58dc58
Remove a comment about an alternative approach that wouldn't
...
actually work, at least as described. LLVM Metadata is not
intended to suppress LLVM IR rules, as it can be stripped at
any time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150821 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 18:33:38 +00:00
Jim Grosbach
7842a741eb
Tidy up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150820 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 17:35:10 +00:00
David Chisnall
4cbcee1618
Generate the correct EH frame section types on Solaris, this time without breaking other platforms...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150819 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 17:31:15 +00:00
David Chisnall
8bb51ef6d2
Revert r150814. It turns out that there is a good reason for this after all...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150818 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 16:51:02 +00:00
Jakob Stoklund Olesen
0f7de3542f
Revert r150288, "Allow Post-RA LICM to hoist reserved register reads."
...
This caused miscompilations on out-of-tree targets, and possibly i386 as
well.
I'll find some other way of hoisting %rip-relative loads from loops
containing calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150816 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 16:40:44 +00:00
David Chisnall
637b25a6a0
Don't lazily allocate eh_frame. We're not lazily allocating things like the LSDA, which are only used when the eh frame is used, so this lazy allocation doesn't really make sense.
...
Fix the type of eh_frame on Solaris so that Sun ld doesn't fail to combine them (thus making it impossible for the unwind library to find them and breaking exceptions).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150814 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 16:32:07 +00:00
David Chisnall
50f603fff6
... and it's probably best to use the correct alignment, rather than just guessing that it's the same as the size.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150813 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 16:30:39 +00:00
David Chisnall
ca5b752d18
It turns out that putting an 8-byte symbol in a 4-byte section makes Solaris ld sulk. GNU ld is perfectly happy with it, which is worrying for a whole other set of reasons...
...
Thanks to Anton, Duncan and Rafael for helping me track this down.
Pointy hat to Rafael for introducing the bug in the first place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150811 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 16:05:50 +00:00
Jia Liu
c5707112e7
remove Emacs-tag form .cpp files in Mips Backend, and fix some typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150805 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 08:55:11 +00:00
Eric Christopher
ed993de642
Typo in variable name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150796 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 07:08:46 +00:00
Craig Topper
6e94e68b75
Remove the last of the old vector_shuffle patterns from X86 isel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150795 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 07:02:34 +00:00
Nick Lewycky
81266c5c93
Add support for invariant.start inside the static constructor evaluator. This is
...
useful to represent a variable that is const in the source but can't be constant
in the IR because of a non-trivial constructor. If globalopt evaluates the
constructor, and there was an invariant.start with no matching invariant.end
possible, it will mark the global constant afterwards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150794 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 06:59:21 +00:00
Akira Hatanaka
38bdc5762f
Do not promote i32 arguments to i64. This was causing unnecessary sign extension
...
instructions to be emitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150782 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 02:20:26 +00:00
Bill Wendling
3106b8b18b
Remove redundant comment. Use a more efficient datatype.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150780 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 02:12:54 +00:00
Bill Wendling
1bc147b892
Fix some grammar-os and formatting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150779 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 02:09:28 +00:00
Lang Hames
00195d828b
Reverse iterator - should be incrementing rather than decrementing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150778 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 01:54:11 +00:00
Jia Liu
8f5e8c1cd6
add Emacs tag and fix some comment error in file headers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150775 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 01:23:50 +00:00
Chad Rosier
b8703fe265
[fast-isel] Add support for returning non-legal types with no sign- or zero-
...
entend flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150774 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 01:21:28 +00:00
Lang Hames
29879d7f86
MachineScheduler shouldn't use/preserve LiveDebugVariables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150773 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 01:11:37 +00:00
Lang Hames
5d0827582f
Oops - isRegLiveIntoSuccessor is used in non-assert builds now. Remove NDEBUG guards.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150771 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 00:51:32 +00:00
Lang Hames
c2e08db4e5
Re-enable 150652 and 150654 - Make FPSCR non-reserved, and make MachineCSE bail on reserved registers. This *should* be safe as of r150786.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150769 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 00:27:16 +00:00
Lang Hames
af8b34dae9
Turn off assertion, conservatively compute liveness for live-in un-allocatable registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150768 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-17 00:18:18 +00:00
Akira Hatanaka
178d870795
Remove comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150739 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 22:52:29 +00:00
Chad Rosier
a69feb0f33
Remove unnecessary assignment to temporary, ResultReg.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150737 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 22:45:33 +00:00
Jakob Stoklund Olesen
8b0a3f2df9
Remove the YMM_HI_6_15 hack.
...
Call clobbers are now represented with register mask operands. The
regmask can easily represent the fact that xmm6 is call-preserved while
ymm6 isn't. This is automatically computed by TableGen from the
CalleeSavedRegs containing xmm6.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150709 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 17:56:06 +00:00
Jakob Stoklund Olesen
527a08b253
Use the same CALL instructions for Windows as for everything else.
...
The different calling conventions and call-preserved registers are
represented with regmask operands that are added dynamically.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150708 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 17:56:02 +00:00
Akira Hatanaka
e3186774f3
Remove trailing whitespace. Add newline.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150706 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 17:48:20 +00:00
Benjamin Kramer
1a7ea9dd04
Disable machine copy propagation for now. It's known to be buggy (PR11940) and introduces subtle miscompiles in many places.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150703 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 17:29:50 +00:00
Benjamin Kramer
ea79b8e03c
Revert "InstSimplify: Strip pointer casts early."
...
Turns out this isn't safe, because the code below depends on LHS and RHS having
the same type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150695 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 15:19:59 +00:00
Benjamin Kramer
475ebf5a74
InstSimplify: Strip pointer casts early.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150694 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 15:03:04 +00:00
Benjamin Kramer
fd8779a94b
InstSimplify: Ignore pointer casts when constant folding compares between pointers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150690 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 13:49:39 +00:00
Bill Wendling
e6bd7a8058
s/ModAttrBehavior/ModFlagBehavior/g to be consistent with how module flags are named elsewhere.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150679 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 10:28:10 +00:00
James Molloy
6afa3f744a
Remove extraneous #include and spelling mistake introduced in r150669.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150670 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 09:48:07 +00:00
James Molloy
6660c05da3
Modify the algorithm when traversing the DAGCombiner's worklist to be O(log N) for all operations. This fixes a horrible worst case with lots of nodes where 99% of the time was being spent in std::remove.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150669 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 09:17:04 +00:00
NAKAMURA Takumi
22bed5db2f
VMCore/AsmWriter.cpp: Tweak to check #INF and #NAN earlier.
...
With MSVCRT, prior checker missed emission of #INF and #NAN.
FIXME: Checking should be simpler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150667 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 08:12:24 +00:00
NAKAMURA Takumi
c8782a1a53
VMCore/AsmWriter.cpp: Use APFloat instead of atof(3).
...
atof(3) might behave differently among platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150661 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 04:19:15 +00:00
Lang Hames
1834df8384
Oop - r150653 + r150654 broke one of my test cases. Backing out for now...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150655 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 02:32:10 +00:00
Lang Hames
afae28b1c6
FPSCR shouldn't be reserved.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150654 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 02:28:14 +00:00
Lang Hames
f7e31b9e81
MachineCSE shouldn't extend the live ranges of reserved or allocatable registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150653 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-16 02:19:35 +00:00