Jim Grosbach [Thu, 21 Oct 2010 22:04:05 +0000 (22:04 +0000)]
Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117073
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 21 Oct 2010 22:03:21 +0000 (22:03 +0000)]
ARM Binary encoding information for BFC/BFI instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117072
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 21 Oct 2010 21:55:35 +0000 (21:55 +0000)]
Add some more documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117070
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 21:51:58 +0000 (21:51 +0000)]
Add tests for NEON vmul encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117069
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 21 Oct 2010 21:47:51 +0000 (21:47 +0000)]
These don't need to be virtual.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117068
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 21:40:15 +0000 (21:40 +0000)]
Rename this test to better reflect its contents.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117067
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Thu, 21 Oct 2010 21:16:03 +0000 (21:16 +0000)]
Fix type in passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117065
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 20:56:57 +0000 (20:56 +0000)]
Add tests for NEON encodings of vaddhn and vraddhn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117064
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Thu, 21 Oct 2010 20:49:38 +0000 (20:49 +0000)]
Fix Warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117062
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Thu, 21 Oct 2010 20:49:23 +0000 (20:49 +0000)]
X86: Base _fltused on the FunctionType of the called value instead of the potentially null "CalledFunction". Thanks Duncan!
This is needed for indirect calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117061
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 20:49:13 +0000 (20:49 +0000)]
Move the encoding logic for Q registers into getMachineOpValue().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117060
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 20:42:04 +0000 (20:42 +0000)]
Add tests for NEON encodings of vqadd, which was already correctly encoded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117059
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 21 Oct 2010 20:40:39 +0000 (20:40 +0000)]
Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117058
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Thu, 21 Oct 2010 20:28:21 +0000 (20:28 +0000)]
Support: Add Endian.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117057
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 20:21:49 +0000 (20:21 +0000)]
ARM encodes Q registers as 2xregno (i.e. the number of the D register that corresponds to the lower
half of the Q register), rather than with just regno. This allows us to unify the encodings for
a lot of different NEON instrucitons that differ only in whether they have Q or D register operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117056
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 21 Oct 2010 20:09:54 +0000 (20:09 +0000)]
Handle storing args to the stack for calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117055
91177308-0d34-0410-b5e6-
96231b3b80d8
Wesley Peck [Thu, 21 Oct 2010 19:48:38 +0000 (19:48 +0000)]
Adding initial AsmParser implementation for the MBlaze backend. It is
mostly based on the ARM AsmParser at this time and is not particularly
functional.
Changed the MBlaze data layout from:
"E-p:32:32-i8:8:8-i16:16:16-i64:32:32-f64:32:32-v64:32:32-v128:32:32-n32"
to:
"E-p:32:32:32-i8:8:8-i16:16:16"
because the MicroBlaze doesn't have i64, f64, v64, or v128 data types.
Cleaned up the MBlaze source code:
1. The floating point register class has been removed. The
MicroBlaze does not have floating point registers. Floating
point values are simply stored in integer registers.
2. Renaming the CPURegs register class to GPR to reflect the
standard naming.
3. Removing a lot of stale code from AsmPrinter after
the conversion to InstPrinter.
4. Simplified sign extended loads by marking them as
expanded in ISelLowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117054
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 21 Oct 2010 19:45:09 +0000 (19:45 +0000)]
Explain what "constant" means here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117053
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 21 Oct 2010 19:40:30 +0000 (19:40 +0000)]
More load/store refactoring, call reg+offset simplification from within
the emitter to handle the addresses. Only simplify the offset if we need
to - also fix bug where in addrmode 5 we weren't dividing the offset by
4, which showed up due to not always lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117051
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 21 Oct 2010 19:38:40 +0000 (19:38 +0000)]
trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117050
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 21 Oct 2010 19:01:22 +0000 (19:01 +0000)]
Update comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117048
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 18:55:04 +0000 (18:55 +0000)]
Add correct NEON encodings for vhadd and vrhadd.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117047
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 21 Oct 2010 18:47:08 +0000 (18:47 +0000)]
Don't include the destination interval in the union when computing
Parent - union(Y, ...). Doh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117042
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 21 Oct 2010 18:47:06 +0000 (18:47 +0000)]
Permit landing pad successor blocks when verifying basic blocks that end in an
unconditional branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117041
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 18:20:25 +0000 (18:20 +0000)]
Add correct encodings for NEON vaddw.s* and vaddw.u*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117040
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 18:09:17 +0000 (18:09 +0000)]
Provide correct NEON encodings for vaddl.u* and vaddl.s*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117039
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 21 Oct 2010 18:00:20 +0000 (18:00 +0000)]
Do not recurse into symbol refs that have a variant kind. This prevents us
from losing the variant when producing a relocation on an alias.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117037
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Thu, 21 Oct 2010 17:16:46 +0000 (17:16 +0000)]
More tweaks to X86 instructions to allow the 'w' suffix in places it makes
sense, when the instruction takes the 16-bit ax register or m16 memory
location. These changes to llvm-mc matches what the darwin assembler allows
for these instructions. Also added the missing flex (without the wait prefix)
and ud2a as an alias to ud2 (still to add ud2b).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117031
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 21 Oct 2010 16:07:10 +0000 (16:07 +0000)]
AlignLoc is never used for anything - zap it (gcc-4.6 warning).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117025
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 21 Oct 2010 16:06:28 +0000 (16:06 +0000)]
The return value of this call is not used, so no point
in assigning it to a variable (gcc-4.6 warning).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117024
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 21 Oct 2010 16:05:44 +0000 (16:05 +0000)]
RetOp is not actually used for anything useful (though
it looks like maybe it was supposed to be used in the
test...), so zap it (gcc-4.6 warning).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117023
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 21 Oct 2010 16:04:43 +0000 (16:04 +0000)]
The variable liTRC is not used for anything useful, zap it
(gcc-4.6 warning).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117022
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 21 Oct 2010 16:03:28 +0000 (16:03 +0000)]
Remove some variables that are never really used
(gcc-4.6 warns about these).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117021
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 21 Oct 2010 16:02:12 +0000 (16:02 +0000)]
Add parentheses to pacify gcc, which warns otherwise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117020
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 21 Oct 2010 14:40:02 +0000 (14:40 +0000)]
Argh, completely forgot to add this to the release notes!
Better late than never, right?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117009
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 21 Oct 2010 08:57:29 +0000 (08:57 +0000)]
Fix the cleanup process of exception information in JIT. Now JIT
deregisters registered by it FDE structures allowing consecutive
JIT runs to succeed. Patch by Yuri. Fixes PR8285.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117004
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 21 Oct 2010 06:25:08 +0000 (06:25 +0000)]
Fix whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117002
91177308-0d34-0410-b5e6-
96231b3b80d8
Wesley Peck [Thu, 21 Oct 2010 05:05:06 +0000 (05:05 +0000)]
Removing stale AsmPrinter directory from MicroBlaze backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116998
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 21 Oct 2010 05:01:26 +0000 (05:01 +0000)]
Deleted lib/Target/MBlaze/AsmPrinter/CMakeLists.txt. This way the
CMake build does not try to build that library, which collides with
MBlaze/InstPrinter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116997
91177308-0d34-0410-b5e6-
96231b3b80d8
Wesley Peck [Thu, 21 Oct 2010 03:57:26 +0000 (03:57 +0000)]
Recommit 116986 with capitalization typo fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116993
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Thu, 21 Oct 2010 03:40:16 +0000 (03:40 +0000)]
putback r116983 and fix simple-fp-encoding.ll tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116992
91177308-0d34-0410-b5e6-
96231b3b80d8
Wesley Peck [Thu, 21 Oct 2010 03:34:22 +0000 (03:34 +0000)]
Reverting the commit 116986. It was breaking the build on llvm-x86_64-linux though it
compiles on OS X. I'll ensure that it builds on a linux machine before committing
again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116991
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 03:11:16 +0000 (03:11 +0000)]
Revert r116983, which is breaking all the buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116987
91177308-0d34-0410-b5e6-
96231b3b80d8
Wesley Peck [Thu, 21 Oct 2010 03:09:55 +0000 (03:09 +0000)]
Major update of the MicroBlaze backend. The new features are:
1. A delay slot filler that searches for valid instructions
to fill the delay slot with. Previously NOPs would always
be inserted into delay slots.
2. Support for MC based instruction printer added.
3. Support for MC based machine code generation and ELF
file generation. ELF file generation does not yet
completely work as much of the ELF support infrastructure
is still x86/x86-64 specific.
4. General clean up of the MBlaze backend code. Much of the
tablegen code has been cleanup and simplified.
Bug Fixes:
1. Removed duplicate periods from subtarget feature descriptions.
2. Many of the instructions had bad machine code information
in the tablegen files. Much of this has been fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116986
91177308-0d34-0410-b5e6-
96231b3b80d8
Wesley Peck [Thu, 21 Oct 2010 02:52:59 +0000 (02:52 +0000)]
Adding the EM_MBLAZE value to the machine architectures enumeration to
support future ELF file generation by the MBlaze backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116985
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Thu, 21 Oct 2010 01:41:01 +0000 (01:41 +0000)]
X86: Add alloca probing to dynamic alloca on Windows. Fixes PR8424.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116984
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 21 Oct 2010 01:12:00 +0000 (01:12 +0000)]
Add missing scheduling itineraries for transfers between core registers and VFP registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116983
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 21 Oct 2010 00:48:00 +0000 (00:48 +0000)]
Implement correct encodings for NEON vadd, both integer and floating point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116981
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Thu, 21 Oct 2010 00:08:21 +0000 (00:08 +0000)]
CodeGen-Windows: Only emit _fltused if a VarArg function is called with floating point args.
This should be the minimum set of functions that could possibly need it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116978
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 21 Oct 2010 00:01:47 +0000 (00:01 +0000)]
Custom lower f64 args passed in integer registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116977
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Wed, 20 Oct 2010 23:40:27 +0000 (23:40 +0000)]
Fix Whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116972
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 20 Oct 2010 23:37:40 +0000 (23:37 +0000)]
Add encoding for moving a value between two ARM core registers and a doublework
extension register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116970
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 20 Oct 2010 22:50:42 +0000 (22:50 +0000)]
Remember to keep track of rematted values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116962
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 20 Oct 2010 22:44:54 +0000 (22:44 +0000)]
Add encodings for movement between ARM core registers and single-precision
registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116961
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 20 Oct 2010 22:37:41 +0000 (22:37 +0000)]
Memdep says that an instruction clobbers itself
when it means there is no specific clobber instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116960
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 20 Oct 2010 22:22:30 +0000 (22:22 +0000)]
Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry
delete PassInfo objects that were created using new-style initialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116959
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 20 Oct 2010 22:11:14 +0000 (22:11 +0000)]
Factor out the main aliasing check into a separate function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116958
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 20 Oct 2010 22:04:02 +0000 (22:04 +0000)]
Add some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116957
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 20 Oct 2010 22:03:58 +0000 (22:03 +0000)]
More accurate estimate / tracking of register pressure.
- Initial register pressure in the loop should be all the live defs into the
loop. Not just those from loop preheader which is often empty.
- When an instruction is hoisted, update register pressure from loop preheader
to the original BB.
- Treat only use of a virtual register as kill since the code is still SSA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116956
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 20 Oct 2010 22:03:37 +0000 (22:03 +0000)]
Fix crash introduced in 116852.
8573915.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116955
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 20 Oct 2010 22:02:58 +0000 (22:02 +0000)]
Fix comments; the type graph is currently a tree, not a DAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116954
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Wed, 20 Oct 2010 22:01:39 +0000 (22:01 +0000)]
Cut unneeded global variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116953
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 20 Oct 2010 22:00:51 +0000 (22:00 +0000)]
Move some of the InlineSpiller rematerialization code into LiveRangeEdit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116951
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 20 Oct 2010 21:32:10 +0000 (21:32 +0000)]
Remove Synthesizable from the Type system; as MMX vector
types are no longer Legal on X86, we don't need it.
No functional change.
8499854.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116947
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 20 Oct 2010 18:45:55 +0000 (18:45 +0000)]
When SimpleRegisterCoalescing is trimming kill flags on a physical register
operand, also check if subregisters are killed.
Add <imp-def> operands for subregisters that remain alive after a super register
is killed.
I don't have a testcase for this that reproduces on trunk. <rdar://problem/
8441758>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116940
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 20 Oct 2010 16:46:08 +0000 (16:46 +0000)]
Handle _GLOBAL_OFFSET_TABLE_ correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116932
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Wed, 20 Oct 2010 16:00:45 +0000 (16:00 +0000)]
Use C++03...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116927
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Wed, 20 Oct 2010 15:23:58 +0000 (15:23 +0000)]
System-Win32/Path: Fix incorrect assumption in isValid.
A recent commit to clang exposed a bug in the Win32 Path code. This is a
minimal fix for it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116925
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Wed, 20 Oct 2010 08:44:27 +0000 (08:44 +0000)]
Add a comment about ATTRIBUTE_UNUSED to avoid further confusion over when to
use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116920
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Wed, 20 Oct 2010 08:27:02 +0000 (08:27 +0000)]
Remove remaining uses of ATTRIBUTE_UNUSED on variables, and delete three
#includes in the process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116919
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 20 Oct 2010 08:02:24 +0000 (08:02 +0000)]
Fix a TODO by removing some unnecesary copies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116915
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 20 Oct 2010 04:57:22 +0000 (04:57 +0000)]
Record sysbols created by aliases. Fixes PR8414.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116910
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 20 Oct 2010 04:05:29 +0000 (04:05 +0000)]
Add ATTRIBUTE_UNUSED for -Asserts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116909
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Wed, 20 Oct 2010 01:54:44 +0000 (01:54 +0000)]
Add RegionPass support.
A RegionPass is executed like a LoopPass but on the regions detected by the
RegionInfo pass instead of the loops detected by the LoopInfo pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116905
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 20 Oct 2010 01:36:56 +0000 (01:36 +0000)]
Fix CMake build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116903
91177308-0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 20 Oct 2010 01:21:53 +0000 (01:21 +0000)]
Add a way to emit StringSwitch of clang attribute spellings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116899
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 20 Oct 2010 01:10:01 +0000 (01:10 +0000)]
Fix backwards conditional.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116897
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 20 Oct 2010 00:31:05 +0000 (00:31 +0000)]
Make CodeGen TBAA-aware.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116890
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 20 Oct 2010 00:02:50 +0000 (00:02 +0000)]
Add dynamic realignment when rematerializing the base register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116886
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Oct 2010 23:48:47 +0000 (23:48 +0000)]
Nuke a commented out bit that got missed a while back.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116883
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Oct 2010 23:39:23 +0000 (23:39 +0000)]
Spelling typo fix. s/incput/input/. Thanks, Bob!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116880
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Oct 2010 23:27:08 +0000 (23:27 +0000)]
Add a pre-dispatch SjLj EH hook on the unwind edge for targets to do any
setup they require. Use this for ARM/Darwin to rematerialize the base
pointer from the frame pointer when required. rdar://
8564268
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116879
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Oct 2010 23:09:08 +0000 (23:09 +0000)]
Move NoAA out of BasicAliasAnalysis.cpp into its own file, now that
it doesn't have a special relationship with BasicAliasAnalysis
anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116876
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Oct 2010 22:54:46 +0000 (22:54 +0000)]
Reapply r116831 and r116839, converting AliasAnalysis to use
uint64_t, plus fixes for places I missed before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116875
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 19 Oct 2010 22:13:48 +0000 (22:13 +0000)]
Extend StringRef's edit-distance algorithm to permit an upper bound on the allowed edit distance
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116867
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 19 Oct 2010 21:34:47 +0000 (21:34 +0000)]
Update comments to remove obsolete references.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116863
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Oct 2010 21:06:16 +0000 (21:06 +0000)]
Revert r116831 and r116839, which are breaking selfhost builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116858
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 19 Oct 2010 20:56:32 +0000 (20:56 +0000)]
Shrink MachineOperand from 40 to 32 bytes on 64-bit hosts.
Pull an unsigned out of the Contents union such that it has the same size as two
pointers and no padding.
Arrange members such that the Contents union and all pointers can be 8-byte
aligned without padding.
This speeds up code generation by 0.8% on a 64-bit host. 32-bit hosts should be
unaffected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116857
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 19 Oct 2010 20:08:44 +0000 (20:08 +0000)]
Passes do not need to recursively initialize passes that they preserve, if
they do not also require them. This allows us to reduce inter-pass linkage
dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116854
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 19 Oct 2010 20:00:17 +0000 (20:00 +0000)]
Enable using vdup for vector constants which are splat of
integers by default, and remove the controlling flag, now
that LICM will hoist such vdup's.
8003375.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116852
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 19 Oct 2010 19:54:48 +0000 (19:54 +0000)]
Remove extraneous slash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116851
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 19 Oct 2010 19:31:37 +0000 (19:31 +0000)]
Small cleanups and fixes in preparation for fixing _GLOBAL_OFFSET_TABLE_.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116848
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 19 Oct 2010 18:58:51 +0000 (18:58 +0000)]
Re-enable register pressure aware machine licm with fixes. Hoist() may have
erased the instruction during LICM so UpdateRegPressureAfter() should not
reference it afterwards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116845
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Oct 2010 18:08:27 +0000 (18:08 +0000)]
Oops, check in all the files for converting AliasAnalysis to
use uint64_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116839
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Tue, 19 Oct 2010 18:04:19 +0000 (18:04 +0000)]
unittests: Use the correct defines and global variables when building on CMake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116834
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Tue, 19 Oct 2010 18:04:06 +0000 (18:04 +0000)]
Fix VC2010 build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116833
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 19 Oct 2010 18:02:06 +0000 (18:02 +0000)]
Factor out the call-once implementation into its own macro.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116832
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 19 Oct 2010 18:00:02 +0000 (18:00 +0000)]
Change AliasAnalysis and its clients to use uint64_t instead of unsigned
for representing object sizes, for consistency with other parts of LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116831
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Tue, 19 Oct 2010 17:39:10 +0000 (17:39 +0000)]
Fixing r116753 r116756 r116777
The failures in r116753 r116756 were caused by a python issue -
Python likes to append 'L' suffix to stringified numbers if the number
is larger than a machine int. Unfortunately, this causes a divergence of
behavior between 32 and 64 bit python versions.
I re-crafted elf-dump/common_dump to take care of these issues by:
1. always printing 0x (makes for easy sed/regex)
2. always print fixed length (exactly 2 + numBits/4 digits long)
by mod ((2^numBits) - 1)
3. left-padded with '0'
There is a residual common routine that is also used by
macho-dump (dataToHex) , so I left the 'section_data' test values alone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116823
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 19 Oct 2010 17:21:58 +0000 (17:21 +0000)]
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which
must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize
the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems
with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass
registration/creation, please send the testcase to me directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116820
91177308-0d34-0410-b5e6-
96231b3b80d8