Rafael Espindola
7c9cc46165
Check RequiresNullTerminator first, or we might read from an invalid address.
...
llvm-svn: 127853
2011-03-18 02:55:51 +00:00
Eli Friedman
1a916a3c0c
Add a target-specific branchless method for double-width relational
...
comparisons on x86. Essentially, the way this works is that SUB+SBB sets
the relevant flags the same way a double-width CMP would.
This is a substantial improvement over the generic lowering in LLVM. The output
is also shorter than the gcc-generated output; I haven't done any detailed
benchmarking, though.
llvm-svn: 127852
2011-03-18 02:34:11 +00:00
Ted Kremenek
4422bfea50
Use CrashRecoveryContextCleanup objects to recover an ASTUnit if we crash in ASTUnit::LoadFromCommandLine() and ASTUnit::LoadFromCompilerInvocation().
...
llvm-svn: 127851
2011-03-18 02:06:56 +00:00
Ted Kremenek
750028b6f4
Use CrashRecoveryContextCleanup objects to release resources associated with Sema during a crash while parsing.
...
llvm-svn: 127850
2011-03-18 02:06:53 +00:00
Ted Kremenek
c44d3cf581
Augment CrashRecoveryContext to have registered "cleanup" objects that can be used to release resources during a crash.
...
llvm-svn: 127849
2011-03-18 02:05:11 +00:00
Ken Dyck
a1b35109cf
Convert alignment values to CharUnits. No change in functionality intended.
...
llvm-svn: 127848
2011-03-18 01:26:17 +00:00
Eli Friedman
84fc495599
Add some svn:ignore properties.
...
llvm-svn: 127847
2011-03-18 01:24:16 +00:00
Ken Dyck
33fa9ee4fd
Convert getSizeInBytes() to getSizeInChars(), which returns its result in
...
CharUnits. No change in functionality intended.
llvm-svn: 127846
2011-03-18 01:12:13 +00:00
Eli Friedman
c17c9a78aa
FileCheck-ize and update test.
...
llvm-svn: 127845
2011-03-18 01:10:31 +00:00
Ken Dyck
4e54dcaca1
Convert variables to CharUnits in ConvertStructToPacked(). No change in
...
functionality intended.
llvm-svn: 127844
2011-03-18 00:55:06 +00:00
Johnny Chen
e387f8a5e9
The disassembler for Thumb was wrongly adding 4 to the computed imm32 offset.
...
Remove the offending logic and update the test cases.
llvm-svn: 127843
2011-03-18 00:38:03 +00:00
Andrew Trick
f8f67f0188
Remove TargetData and ValueTracking includes. I didn't mean for them to sneak in my last checkin.
...
llvm-svn: 127842
2011-03-18 00:36:39 +00:00
Jim Ingham
b7603bb48d
Relax the constraint on the types of ValueObjects that we'll by default try the
...
ObjC runtime for print object to Pointer AND Integer (from just pointer.)
llvm-svn: 127841
2011-03-18 00:05:18 +00:00
Owen Anderson
38aa83fa24
There are two pseudos in this case that are Thumb mode, not one.
...
llvm-svn: 127840
2011-03-17 23:52:05 +00:00
Andrew Trick
87716c93c2
Added isValidRewrite() to check the result of ScalarEvolutionExpander.
...
SCEV may generate expressions composed of multiple pointers, which can
lead to invalid GEP expansion. Until we can teach SCEV to follow strict
pointer rules, make sure no bad GEPs creep into IR.
Fixes rdar://problem/9038671.
llvm-svn: 127839
2011-03-17 23:51:11 +00:00
Caroline Tice
4c753376cb
Make all the codee that attempts to read the PC consistently use
...
ReadCoreReg (which 'does the right thing', adding to pc when needed);
fixed places in code where extra addition was being passed along.
Fix bug in insn tables.
llvm-svn: 127838
2011-03-17 23:50:16 +00:00
Andrew Trick
e44f0d94f6
whitespace
...
llvm-svn: 127837
2011-03-17 23:46:48 +00:00
Daniel Dunbar
c44f8cf7b8
Driver/Obj-C: Be compatible with GCC behavior in that -fno-exceptions *does not*
...
disable Obj-C exceptions.
llvm-svn: 127836
2011-03-17 23:28:31 +00:00
Rafael Espindola
ab959a2e68
Use RequiresNullTerminator to create buffers without a null terminator
...
instead of copying.
llvm-svn: 127835
2011-03-17 22:18:42 +00:00
Devang Patel
aad34d882d
Try to not lose variable's debug info during instcombine.
...
This is done by lowering dbg.declare intrinsic into dbg.value intrinsic.
Radar 9143931.
llvm-svn: 127834
2011-03-17 22:18:16 +00:00
Johnny Chen
221a014ea3
It used to be that t_addrmode_s4 was used for both:
...
o A8.6.195 STR (register) -- Encoding T1
o A8.6.193 STR (immediate, Thumb) -- Encoding T1
It has been changed so that now they use different addressing modes
and thus different MC representation (Operand Infos). Modify the
disassembler to reflect the change, and add relevant tests.
llvm-svn: 127833
2011-03-17 22:04:05 +00:00
Devang Patel
8c0b16b0aa
Refactor into a separate utility function.
...
llvm-svn: 127832
2011-03-17 21:58:19 +00:00
Jim Ingham
8268ccab60
Fix a problem where we were looking up the class pointer in the {class/sel -> implementation} cache for a objc_msgSendSuper call - where we should have looked up the class's super-class.
...
llvm-svn: 127830
2011-03-17 21:04:33 +00:00
Benjamin Kramer
cfcea12fe2
BuildUDIV: If the divisor is even we can simplify the fixup of the multiplied value by introducing an early shift.
...
This allows us to compile "unsigned foo(unsigned x) { return x/28; }" into
shrl $2, %edi
imulq $613566757, %rdi, %rax
shrq $32, %rax
ret
instead of
movl %edi, %eax
imulq $613566757, %rax, %rcx
shrq $32, %rcx
subl %ecx, %eax
shrl %eax
addl %ecx, %eax
shrl $4, %eax
on x86_64
llvm-svn: 127829
2011-03-17 20:39:14 +00:00
Benjamin Kramer
09a51bab5d
Add an argument to APInt's magic udiv calculation to specify the number of bits that are known zero in the divided number.
...
This will come in handy soon.
llvm-svn: 127828
2011-03-17 20:39:06 +00:00
Jakob Stoklund Olesen
8630840c30
Dead code elimination may separate the live interval into multiple connected components.
...
I have convinced myself that it can only happen when a phi value dies. When it
happens, allocate new virtual registers for the components.
llvm-svn: 127827
2011-03-17 20:37:07 +00:00
Jim Ingham
35944dda10
Get ObjC stepping working again when the process is not the default host architecture.
...
llvm-svn: 127825
2011-03-17 20:02:56 +00:00
Stuart Hastings
ec54bd755f
Reapply: Add type output to llvm-dis annotations. Patch by Yuri!
...
llvm-svn: 127824
2011-03-17 19:50:04 +00:00
Johnny Chen
0d825132c6
Tidy up the input file given to 'llvm-mc -disassemble' and also append the gdb
...
assembler code to the memory dump.
llvm-svn: 127823
2011-03-17 19:05:34 +00:00
Oscar Fuentes
73963b67c1
Fix some issues with include directories: remove a duplicate and put
...
Clang binary and source directories first (on that order).
llvm-svn: 127822
2011-03-17 19:03:04 +00:00
Richard Osborne
6120962d7d
Add XCore intrinsic for setpsc.
...
llvm-svn: 127821
2011-03-17 18:42:05 +00:00
Daniel Dunbar
033a4bc49e
Driver/Darwin: These are command line options, not target features.
...
llvm-svn: 127820
2011-03-17 18:29:04 +00:00
Daniel Dunbar
1d733e2d7e
Driver/Darwin: Suppress spurious warning about -force_cpusubtype_ALL.
...
llvm-svn: 127819
2011-03-17 17:37:29 +00:00
Daniel Dunbar
c9388c11f1
Driver/Darwin/ARM: Kernel/kext code has more strict alignment requirements.
...
llvm-svn: 127815
2011-03-17 17:10:06 +00:00
Stuart Hastings
ead01c40e1
Revert 127813 while fixing broken test.
...
llvm-svn: 127814
2011-03-17 16:54:27 +00:00
Stuart Hastings
8e08a786bf
Add type output to llvm-dis. Patch by Yuri!
...
llvm-svn: 127813
2011-03-17 16:30:14 +00:00
Daniel Dunbar
f1d62cfc8f
MC/Mach-O: Fix regression introduced in r126127, this assignment shouldn't have
...
been removed.
llvm-svn: 127812
2011-03-17 16:25:24 +00:00
Richard Smith
9647d3ca02
Fix PR9488: 'auto' type substitution can fail (for instance, if it creates a reference-to-void type). Don't crash if it does.
...
Also fix an issue where type source information for the resulting type was being lost.
llvm-svn: 127811
2011-03-17 16:11:59 +00:00
Cameron Zwarich
2ef0c69df1
Move more logic into getTypeForExtArgOrReturn.
...
llvm-svn: 127809
2011-03-17 14:53:37 +00:00
Cameron Zwarich
341c36dc8b
Change the signext language in LangRef to closer match zeroext.
...
llvm-svn: 127808
2011-03-17 14:21:58 +00:00
Cameron Zwarich
34e7b3f77e
Rename getTypeForExtendedInteger() to getTypeForExtArgOrReturn().
...
llvm-svn: 127807
2011-03-17 14:21:56 +00:00
David Chisnall
a9e5460f03
Remove code that was intentionally generating bad code on the GNU runtime for no reason (failing to emit .cxx_constructor / .cxx_destructor methods).
...
llvm-svn: 127806
2011-03-17 14:19:08 +00:00
Ted Kremenek
65ccd1d9b0
Fix test to test the right thing.
...
llvm-svn: 127803
2011-03-17 05:34:58 +00:00
Ted Kremenek
2551fbe928
Don't construct two CFGs just to run -Wuninitialized. While this causes new warnings to be flagged under -Wconditional-uninitialized, this is something we
...
can improve over time.
llvm-svn: 127802
2011-03-17 05:29:57 +00:00
Nick Lewycky
b4d763b37d
Add comments for the demanglings. Correct mangled form of operator delete!
...
llvm-svn: 127801
2011-03-17 05:20:12 +00:00
NAKAMURA Takumi
bf9ff6f63b
test/CodeGen/X86/h-registers-1.ll: Add explicit -mtriple=x86_64-linux. It does not need to be checked on x86_64-win32 (aka Win64).
...
llvm-svn: 127800
2011-03-17 04:24:40 +00:00
Ted Kremenek
97d8d03855
Make test more portable.
...
llvm-svn: 127799
2011-03-17 04:16:45 +00:00
Ted Kremenek
70727343cf
Teach VariadicMethodTypeChecker about pointers attributed as 'NSObject'.
...
llvm-svn: 127798
2011-03-17 04:10:25 +00:00
Ted Kremenek
6fa1daede5
Teach VariadicMethodTypeChecker that CF references are valid arguments to variadic Objective-C methods.
...
llvm-svn: 127797
2011-03-17 04:01:35 +00:00
Ted Kremenek
3e5ad5932e
Tweak RegionStore's handling of lazy compound values to use the 'Default' versus 'Direct' binding key, thus allowing specific elements of an array/struct to be overwritten without
...
invalidating the entire binding. Fixes PR 9455.
llvm-svn: 127796
2011-03-17 03:51:51 +00:00