Jakob Stoklund Olesen
e02996ca8f
Merge the SystemZ subreg_even32 SubRegIndex into subreg_32bit. The SubRegIndices
...
were overspecified when inheriting sub-subregisters, for instance:
R0Q:subreg_even32 = R0Q:subreg_32bit = R0Q:subreg_even:subreg_32bit.
This meant that composeSubRegIndices(subreg_even, subreg_32bit) was ambiguous.
llvm-svn: 105063
2010-05-28 23:48:29 +00:00
Evan Cheng
cc2efe11db
Fix some latency computation bugs: if the use is not a machine opcode do not just return zero.
...
llvm-svn: 105061
2010-05-28 23:26:21 +00:00
Evan Cheng
bf91499f1a
Schedule high latency instructions for latency reduction even if they are not vfp / NEON instructions.
...
llvm-svn: 105060
2010-05-28 23:25:23 +00:00
Dale Johannesen
e8be73f3e7
Fix comment typos.
...
llvm-svn: 105059
2010-05-28 23:24:28 +00:00
Bruno Cardoso Lopes
1f79289806
More SSE 1 & 2 merge, this time with logical instructions
...
llvm-svn: 105014
2010-05-28 22:47:03 +00:00
Dan Gohman
34709d06c0
Fix AliasDebugger to be aware of operand values too.
...
llvm-svn: 105012
2010-05-28 22:31:51 +00:00
Dan Gohman
0fa67e479a
Add lint checks for function attributes.
...
llvm-svn: 105009
2010-05-28 21:43:57 +00:00
Dan Gohman
0d7f3b8195
Split the logic behind CastInst::isNoopCast into a separate static function,
...
as is done with most other cast opcode predicates.
llvm-svn: 105008
2010-05-28 21:41:37 +00:00
Kevin Enderby
4c71e08ed8
MC/X86: Add alias for movzx.
...
llvm-svn: 105005
2010-05-28 21:20:21 +00:00
Kevin Enderby
b29228905f
MC/X86: Add alias for fwait.
...
llvm-svn: 105001
2010-05-28 20:59:10 +00:00
Kevin Enderby
76413597a9
Fix the use of x86 control and debug registers so that the assertion failure in
...
getX86RegNum() does not happen. Patch by Shantonu Sen!
llvm-svn: 104994
2010-05-28 19:01:27 +00:00
Jakob Stoklund Olesen
64824ea99f
Add a TargetRegisterInfo::composeSubRegIndices hook with a default
...
implementation that is correct for most targets. Tablegen will override where
needed.
Add MachineOperand::subst{Virt,Phys}Reg methods that correctly handle existing
subreg indices when sustituting registers.
llvm-svn: 104985
2010-05-28 18:18:53 +00:00
Jim Grosbach
b342e09b5e
correct retattr
...
llvm-svn: 104980
2010-05-28 18:03:48 +00:00
Jim Grosbach
0b20fdaff0
Cosmetic cleanup. No functional change.
...
llvm-svn: 104974
2010-05-28 17:51:20 +00:00
Dan Gohman
c575ec61ea
Fix lint's memcpy and memmove checks, and its basic block traversal.
...
llvm-svn: 104970
2010-05-28 17:44:00 +00:00
Jim Grosbach
37eb2c24b9
make sure accesses to set up the jmpbuf don't get moved after it by the scheduler. Add a missing \n.
...
llvm-svn: 104967
2010-05-28 17:37:40 +00:00
Dan Gohman
fb85820f9a
Minor code simplification.
...
llvm-svn: 104959
2010-05-28 16:50:23 +00:00
Dan Gohman
feaeb36edf
Fix a redundant-return warning.
...
llvm-svn: 104958
2010-05-28 16:50:01 +00:00
Dan Gohman
862f034188
Detect self-referential values.
...
llvm-svn: 104957
2010-05-28 16:45:33 +00:00
Stuart Hastings
c1e216583f
Revert 104841, 104842, 104876 due to buildbot failures. Radar 7424645.
...
llvm-svn: 104953
2010-05-28 16:41:07 +00:00
Dan Gohman
cef9fc37f4
Eli pointed out that va_arg instruction result values don't
...
reference the stack.
llvm-svn: 104951
2010-05-28 16:34:49 +00:00
Dan Gohman
54d7aaa819
Teach lint how to look through simple store+load pairs and other
...
effective no-op constructs, to make it more effective on
unoptimized IR.
llvm-svn: 104950
2010-05-28 16:21:24 +00:00
Dan Gohman
826bdf8c10
Move FindAvailableLoadedValue isSafeToLoadUnconditionally out of
...
lib/Transforms/Utils and into lib/Analysis so that Analysis passes
can use them.
llvm-svn: 104949
2010-05-28 16:19:17 +00:00
Dan Gohman
a3b6c4b529
ConstantFoldConstantExpression can theoretically return null.
...
llvm-svn: 104948
2010-05-28 16:12:08 +00:00
Dan Gohman
df5d7dcef1
Teach instcombine to promote alloca array sizes.
...
llvm-svn: 104945
2010-05-28 15:09:00 +00:00
Dan Gohman
ddba4b725a
Add a lint check for returning the address of stack memory.
...
llvm-svn: 104936
2010-05-28 04:33:42 +00:00
Dan Gohman
05a6555acb
Fix instcombine's handling of alloca to accept non-i32 types.
...
llvm-svn: 104935
2010-05-28 04:33:04 +00:00
Dan Gohman
9da5bb0756
Bitcode support for allocas with arbitrary array size types.
...
llvm-svn: 104915
2010-05-28 01:38:28 +00:00
Devang Patel
3e0fbafab2
Fix typo.
...
llvm-svn: 104914
2010-05-28 01:29:50 +00:00
Devang Patel
e2099e8088
Fix typo.
...
llvm-svn: 104913
2010-05-28 01:17:51 +00:00
Dan Gohman
2140a74979
Eliminate the restriction that the array size in an alloca must be i32.
...
This will help reduce the amount of casting required on 64-bit targets.
llvm-svn: 104911
2010-05-28 01:14:11 +00:00
Bob Wilson
b6112e8706
Add the cc_out operand for t2RSBrs instructions. I missed this when I changed
...
the instruction class for t2RSB to add that operand in svn r104582.
Radar 8033757.
llvm-svn: 104907
2010-05-28 00:27:15 +00:00
Jakob Stoklund Olesen
b613ae2c89
Add a -regalloc=default option that chooses a register allocator based on the -O
...
optimization level.
This only really affects llc for now because both the llvm-gcc and clang front
ends override the default register allocator. I intend to remove that code later.
llvm-svn: 104904
2010-05-27 23:57:25 +00:00
Jim Grosbach
faa3abbe39
Update the saved stack pointer in the sjlj function context following either
...
an alloca() or an llvm.stackrestore(). rdar://8031573
llvm-svn: 104900
2010-05-27 23:49:24 +00:00
Evan Cheng
c2ebe0334a
Use report_fatal_error, not llvm_unreachable.
...
llvm-svn: 104899
2010-05-27 23:45:31 +00:00
Jim Grosbach
c9f532dddc
back out 104862/104869. Can reuse stacksave after all. Very cool.
...
llvm-svn: 104897
2010-05-27 23:11:57 +00:00
Dan Gohman
288999b829
Factor out the handler work from SignalHandler into a helper function,
...
and change llvm::sys::RunInterruptHandlers to call that function directly
instead of calling SignalHandler, because the rest of SignalHandler
invokes side effects which aren't appropriate, including raising the
signal.
llvm-svn: 104896
2010-05-27 23:11:55 +00:00
Evan Cheng
3d3ee87d4e
llvm can't correctly support 'H', 'Q' and 'R' modifiers. Just mark it an error.
...
llvm-svn: 104891
2010-05-27 22:08:38 +00:00
Kevin Enderby
9738f64bd9
MC/X86: Add aliases for Jcc variants.
...
llvm-svn: 104890
2010-05-27 21:33:19 +00:00
Dan Gohman
6debf89587
Eliminate some unnessary Path::exists() calls.
...
llvm-svn: 104888
2010-05-27 20:51:54 +00:00
Dan Gohman
a880546c65
Don't flush the raw_ostream in llvm::WriteBitcodeToFile; it's at
...
the wrong level. Clients which need to leave the stream open but
which still require the bitcode bits to be on disk should call
flush themselves.
llvm-svn: 104885
2010-05-27 20:26:51 +00:00
Devang Patel
7a9dedf0ab
Do not drop location info for inlined function args.
...
llvm-svn: 104884
2010-05-27 20:25:04 +00:00
Bob Wilson
40e62dfdc0
Fix some bad fall-throughs in a switch statement. Both the 'Q' and 'R' cases
...
should fall through to the 'H' case, but instead 'Q' was falling through to 'R'
so that it would do the wrong thing for a big-endian ARM target.
llvm-svn: 104883
2010-05-27 20:23:42 +00:00
Dale Johannesen
9e43c07bc5
Mark some math lib intrinsic nodes Legal on SSE4.1.
...
No functional effect as these nodes are not generated yet.
llvm-svn: 104879
2010-05-27 20:12:41 +00:00
Dan Gohman
d9225cee20
Don't special-case stdout in llvm::WriteBitcodeToFile; just consider
...
it to be the caller's responsibility to provide a stream in binary
mode. This fixes a layering violation and avoids an outs() call.
llvm-svn: 104878
2010-05-27 20:06:51 +00:00
Duncan Sands
f162eace49
Teach instCombine to remove malloc+free if malloc's only uses are comparisons
...
to null. Patch by Matti Niemenmaa.
llvm-svn: 104871
2010-05-27 19:09:06 +00:00
Jim Grosbach
b68dfb45f5
hook ISD::STACKADDR to an intrinsic
...
llvm-svn: 104869
2010-05-27 18:52:11 +00:00
Dan Gohman
dc53f1cb5c
FastISel doesn't yet handle callee-pop functions.
...
To support this, move IsCalleePop from X86ISelLowering to X86Subtarget.
llvm-svn: 104866
2010-05-27 18:43:40 +00:00
Jim Grosbach
5cde219fb1
add ISD::STACKADDR to get the current stack pointer. Will be used by sjlj EH
...
to update the jmpbuf in the presence of VLAs.
llvm-svn: 104862
2010-05-27 18:23:48 +00:00
Bruno Cardoso Lopes
54b07ad2cd
Merge basic binops SSE 1 & 2 instruction classes. This is a step towards refactoring
...
common code between SSE versions.
llvm-svn: 104860
2010-05-27 18:17:40 +00:00