Stuart Hastings
43d226deea
Fix decl/def debug info for template functions. Radar 8063111.
...
llvm-svn: 107919
2010-07-08 22:28:59 +00:00
Chris Lattner
9f034c1e5d
Rework segment prefix emission code to handle segments
...
in memory operands at the same type as hard coded segments.
This fixes problems where we'd emit the segment override after
the REX prefix on instructions like:
mov %gs:(%rdi), %rax
This fixes rdar://8127102. I have several cleanup patches coming
next.
llvm-svn: 107917
2010-07-08 22:28:12 +00:00
Chris Lattner
1dd82c7dc2
introduce a new X86II::getMemoryOperandNo method, which
...
returns the start of the memory operand for an instruction.
Introduce a new "X86AddrSegment" enum to reduce # magic numbers
referring to X86 memory operand layout.
llvm-svn: 107916
2010-07-08 22:27:06 +00:00
Sebastian Redl
595c51342c
Some preparatory work for chained PCH. No functionality change.
...
llvm-svn: 107915
2010-07-08 22:01:51 +00:00
Johnny Chen
364b0e72d1
Add a test case (incomplete) to check that settings and readings of program
...
variabes work.
llvm-svn: 107914
2010-07-08 21:38:07 +00:00
Kalle Raiskila
d799ea52cd
Switch SPU calling convention (function arguments)
...
to a Tablegen implementation.
llvm-svn: 107913
2010-07-08 21:15:22 +00:00
Zhanyong Wan
9870460c84
Makes RecursiveASTVisitor traverse the type of a temporary object
...
created via T() where T is a class type. Reviewed by chandlerc and
csilvers.
llvm-svn: 107911
2010-07-08 21:01:29 +00:00
Douglas Gregor
55b037b9f3
During code completion, give the "nil" and "NULL" macros the same
...
priority as other constants. And, if we're in a place where we prefer
a pointer type, consider "nil" and "NULL" to be close matches.
llvm-svn: 107910
2010-07-08 20:55:51 +00:00
Stuart Hastings
aa246f5687
Test case for r107843. Radar 8152866.
...
llvm-svn: 107907
2010-07-08 20:31:05 +00:00
Kevin Enderby
ea9207cd7a
Revert some unneeded parts of the change in r107886 for the
...
.weak_def_can_be_hidden directive. Chris pointed out that the MCAsmInfo.h/.cpp
chunks aren't needed for this until the compiler starts generating these. And
when that happens it will be more convenient for it to be a bool than a const
char*.
llvm-svn: 107906
2010-07-08 20:30:44 +00:00
Douglas Gregor
eaff2cbbab
Allow C-style casts and reinterpret_casts between block pointers and
...
either integer values or other pointers. Fixes <rdar://problem/8134521>.
llvm-svn: 107905
2010-07-08 20:27:32 +00:00
Evan Cheng
0f54854a1d
Check for FiniteOnlyFPMath as well.
...
llvm-svn: 107904
2010-07-08 20:12:24 +00:00
Devang Patel
9c160e1213
Reuse DIEInteger for 1. This is frequently used while emitting an attribute using dwarf::DW_FORM_flag form.
...
llvm-svn: 107903
2010-07-08 20:10:35 +00:00
Eli Friedman
07c89c6b3e
PR7588: Fix the _mm_shufflehi_epi16 macro. (The issue was an oversight
...
involving operator precedence.)
llvm-svn: 107902
2010-07-08 20:09:45 +00:00
Devang Patel
8f3f76f991
Handle forward declarations properly in debug info.
...
Patch by Alexander Kabaev.
PR 7595.
llvm-svn: 107900
2010-07-08 19:56:29 +00:00
Jakob Stoklund Olesen
63a622b768
Teach the x86 floating point stackifier to handle COPY instructions.
...
This pass runs before COPY instructions are passed to copyPhysReg, so we simply
translate COPY to the proper pseudo instruction. Note that copyPhysReg does not
handle floating point stack copies.
Once COPY is used everywhere, this can be cleaned up a bit, and most of the
pseudo instructions can be removed.
llvm-svn: 107899
2010-07-08 19:46:30 +00:00
Jakob Stoklund Olesen
930f8082c3
Implement X86InstrInfo::copyPhysReg
...
llvm-svn: 107898
2010-07-08 19:46:25 +00:00
Ted Kremenek
3245003251
Add missing whitespace.
...
llvm-svn: 107897
2010-07-08 19:43:08 +00:00
Douglas Gregor
9961ce9428
When performing substitution of template arguments within the body of
...
a template, be sure to include the template arguments from the
injected-class-name. Fixes PR7587.
llvm-svn: 107895
2010-07-08 18:37:38 +00:00
Sean Callanan
246549c50b
Moved NDEBUG from a global setting to a specific
...
hack.
llvm-svn: 107894
2010-07-08 18:16:16 +00:00
Ted Kremenek
30ae68bd17
Update checker build.
...
llvm-svn: 107893
2010-07-08 18:08:18 +00:00
Bob Wilson
181e5af248
The NEONPreAllocPass should never have to assign fixed registers anymore.
...
This pass can go away entirely soon.
llvm-svn: 107892
2010-07-08 17:45:26 +00:00
Stephen Canon
df69264765
Hand-tuning of single-precision soft-float comparison routines for ARM
...
llvm-svn: 107891
2010-07-08 17:45:05 +00:00
Bob Wilson
1eade1a327
For big-endian systems, VLD2/VST2 with 32-bit vector elements will swap the
...
words within the 64-bit D registers. Use VLD1/VST1 with 64-bit elements
instead.
llvm-svn: 107890
2010-07-08 17:44:00 +00:00
Howard Hinnant
8c459a14a9
Marked subexpressions in a loop in basic posix working (only lightly tested so far)
...
llvm-svn: 107889
2010-07-08 17:43:58 +00:00
Jim Grosbach
dd18ffa302
After r107880, findSurvivorReg() no longer needs to be public.
...
llvm-svn: 107887
2010-07-08 17:27:23 +00:00
Kevin Enderby
082d0fd7ad
Added the darwin .weak_def_can_be_hidden directive.
...
llvm-svn: 107886
2010-07-08 17:22:42 +00:00
Argyrios Kyrtzidis
7e8996c7e6
Introduce PCHReader::GetTranslationUnitDecl() and use it instead of ReadDeclRecord when initializing.
...
ReadDeclRecord would hit assertion if the translation unit declaration was already loaded during
IdentifierInfo initialization.
llvm-svn: 107885
2010-07-08 17:13:02 +00:00
Argyrios Kyrtzidis
9f2d24a808
Support TemplateTemplateParmDecl for PCH.
...
llvm-svn: 107884
2010-07-08 17:12:57 +00:00
Gabor Greif
d6c96c5a67
only dereference iterator once in the loop
...
(by caching the result we save a potentially expensive dereference)
also use typedefs to shorten type declarations
llvm-svn: 107883
2010-07-08 16:56:18 +00:00
Bob Wilson
6c25043493
Clean up a comment.
...
llvm-svn: 107882
2010-07-08 16:54:45 +00:00
Gabor Greif
59bea00737
remove unneeded parens
...
llvm-svn: 107881
2010-07-08 16:52:57 +00:00
Jim Grosbach
c280fc7514
Clean up scavengeRegister() a bit to prefer available regs, which allows
...
the simplification of frame index register scavenging to not have to check
for available registers directly and instead just let scavengeRegister()
handle it.
llvm-svn: 107880
2010-07-08 16:49:26 +00:00
Jakob Stoklund Olesen
00264624a9
Convert EXTRACT_SUBREG to COPY when emitting machine instrs.
...
EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead.
Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg().
The isMoveInstr hook will be removed later.
llvm-svn: 107879
2010-07-08 16:40:22 +00:00
Jakob Stoklund Olesen
a1e883dcf6
Remove references to INSERT_SUBREG after de-SSA.
...
Fix X86InstrInfo::convertToThreeAddressWithLEA to generate COPY instead of
INSERT_SUBREG.
llvm-svn: 107878
2010-07-08 16:40:15 +00:00
Douglas Gregor
f609386058
Bowing to popular demand, reduce the "comma at end of enumerator list"
...
ExtWarn to an Extension. Let the broken code propagate!
llvm-svn: 107875
2010-07-08 14:54:42 +00:00
John McCall
b5081aff68
Apparently the {{$}} hack doesn't work on Windows; I am saddened but not
...
surprised.
llvm-svn: 107874
2010-07-08 13:17:29 +00:00
Argyrios Kyrtzidis
a4ed18191c
For TagType and TemplateSpecializationType, isDependent calculation may be invalid because some decls that the
...
calculation is using may still be initializing.
Thus, store the isDependent flag to PCH and restore directly to Type.
llvm-svn: 107873
2010-07-08 13:09:53 +00:00
Argyrios Kyrtzidis
1985bb3b10
Read/write the C++ parts of DeclRefExpr and MemberExpr for PCH.
...
llvm-svn: 107872
2010-07-08 13:09:47 +00:00
Argyrios Kyrtzidis
00dda6accc
Fix reading of UsingDecl from PCH.
...
llvm-svn: 107871
2010-07-08 13:09:41 +00:00
Argyrios Kyrtzidis
ab446e1b57
Remove unused protected constructor of DeclRefExpr.
...
llvm-svn: 107870
2010-07-08 13:09:35 +00:00
Duncan Sands
242b885798
Use std::vector rather than SmallVector here because SmallVector
...
causes some versions of gcc to crash when building LLVM.
llvm-svn: 107869
2010-07-08 13:06:08 +00:00
Benjamin Kramer
0ae3f08c0d
Merge the duplicated iabs optimization in DAGCombiner and let it detected a few more idioms.
...
llvm-svn: 107868
2010-07-08 12:09:56 +00:00
Duncan Sands
e17a0a7072
Do not use std::stack because it causes obscure failures when
...
compiled with MSVC 2010 (PR7367). Instead use a SmallVector.
llvm-svn: 107867
2010-07-08 11:54:27 +00:00
Benjamin Kramer
2321e6a4d4
Teach instcombine to transform
...
(X >s -1) ? C1 : C2 and (X <s 0) ? C2 : C1
into ((X >>s 31) & (C2 - C1)) + C1, avoiding the conditional.
This optimization could be extended to take non-const C1 and C2 but we better
stay conservative to avoid code size bloat for now.
for
int sel(int n) {
return n >= 0 ? 60 : 100;
}
we now generate
sarl $31, %edi
andl $40, %edi
leal 60(%rdi), %eax
instead of
testl %edi, %edi
movl $60, %ecx
movl $100, %eax
cmovnsl %ecx, %eax
llvm-svn: 107866
2010-07-08 11:39:10 +00:00
Chandler Carruth
e51a119fc6
Wrap the new ext-warn on extraneous comma on the last entry of an enumerator
...
list in a diagnostic group so it can be turned on and off. A terrifying amount
of code, including large chunks of open source code, still do this so it's
important to be able to suppress it when necessary.
Doug, is this a reasonable compromise? I'd lean toward making it a normal
extension, but I don't feel strongly as long as we can turn the warnings off.
llvm-svn: 107865
2010-07-08 10:52:01 +00:00
Chandler Carruth
dd1bc0f1b5
Add support for differentiating between attributes ignored when handled and
...
unknown attributes that we discard. Add a diagnostic group for unknown
attribute warnings to allow turning these off when we don't care. Also
consolidates the tests for this case.
llvm-svn: 107864
2010-07-08 09:42:26 +00:00
Duncan Sands
b69d4ce5f3
Tweak documentation to mention Debug+Asserts.
...
llvm-svn: 107863
2010-07-08 08:31:28 +00:00
Duncan Sands
1567f0fa7e
Tweak some docs now that the default build is called Debug+Asserts.
...
llvm-svn: 107862
2010-07-08 08:27:18 +00:00
Eric Christopher
e796253217
A slight reworking of the custom patterns for x86-64 tpoff codegen and
...
correct the testcase for valid assembly.
Needs more tests.
llvm-svn: 107860
2010-07-08 07:36:46 +00:00