John McCall
c29eb8a9d1
Clean up a very silly use of first-class aggregates.
...
llvm-svn: 111777
2010-08-22 11:04:31 +00:00
John McCall
a1dee5300b
Experiment with using first-class aggregates to represent member function
...
pointers. I find the resulting code to be substantially cleaner, and it
makes it very easy to use the same APIs for data member pointers (which I have
conscientiously avoided here), and it avoids a plethora of potential
inefficiencies due to excessive memory copying, but we'll have to see if it
actually works.
llvm-svn: 111776
2010-08-22 10:59:02 +00:00
John McCall
131d97d809
Extract member function pointer comparison and null comparison into
...
the ABI code. Implement correct semantics for these on ARM.
I believe this completes the implementation of member function pointers
on ARM.
I think I'm going to switch member function pointers over to be
non-aggregates while I have all this in mind.
llvm-svn: 111774
2010-08-22 08:30:07 +00:00
Chandler Carruth
6f33bd9345
Add two new enumerations to the unsupported list for Windows so that all cases
...
are handled.
llvm-svn: 111773
2010-08-22 06:56:37 +00:00
John McCall
1c456c89dc
Abstract out member-pointer creation. I'm really unhappy about the current
...
duplication between the constant and non-constant paths in all of this.
Implement ARM ABI semantics for member pointer constants and conversion.
llvm-svn: 111772
2010-08-22 06:43:33 +00:00
John McCall
84fa510aa9
Abstract more member-pointerness out.
...
llvm-svn: 111771
2010-08-22 04:16:24 +00:00
John McCall
a8bbb82c55
Abstract out member-pointer conversions.
...
Pretty much everything having to do with member pointers is ABI-specific.
llvm-svn: 111770
2010-08-22 03:04:22 +00:00
Howard Hinnant
2807d4a58b
Fixing whitespace problems
...
llvm-svn: 111769
2010-08-22 01:04:38 +00:00
Eli Friedman
04831926ec
Detabify.
...
llvm-svn: 111768
2010-08-22 01:00:03 +00:00
Howard Hinnant
94b2dd0998
Fixing whitespace problems
...
llvm-svn: 111767
2010-08-22 00:59:46 +00:00
John McCall
d9c6c0b583
Implement the call parts of the member-function-pointer ARM C++ ABI.
...
llvm-svn: 111766
2010-08-22 00:59:17 +00:00
Howard Hinnant
2cb7936efe
Fixing whitespace problems
...
llvm-svn: 111765
2010-08-22 00:50:25 +00:00
Howard Hinnant
bf2897cf45
Fixing whitespace problems
...
llvm-svn: 111764
2010-08-22 00:47:54 +00:00
Howard Hinnant
f36101dd3d
Fixing whitespace problems
...
llvm-svn: 111763
2010-08-22 00:45:01 +00:00
Howard Hinnant
a0eaf608cd
Fixing whitespace problems
...
llvm-svn: 111762
2010-08-22 00:42:21 +00:00
Howard Hinnant
3bad6b61e5
Fixing whitespace problems
...
llvm-svn: 111761
2010-08-22 00:39:25 +00:00
Howard Hinnant
b5a4c50a03
Fixing whitespace problems
...
llvm-svn: 111760
2010-08-22 00:31:12 +00:00
Howard Hinnant
0022123b95
Fixing whitespace problems
...
llvm-svn: 111759
2010-08-22 00:29:01 +00:00
Howard Hinnant
66dbf0d311
Fixing whitespace problems
...
llvm-svn: 111758
2010-08-22 00:26:48 +00:00
Howard Hinnant
62bfbb0974
Fixing whitespace problems
...
llvm-svn: 111757
2010-08-22 00:22:24 +00:00
Howard Hinnant
5cf4e1f1f0
Fixing whitespace problems
...
llvm-svn: 111756
2010-08-22 00:20:12 +00:00
Howard Hinnant
8f2f7e7c79
Fixing whitespace problems
...
llvm-svn: 111755
2010-08-22 00:15:28 +00:00
Howard Hinnant
664ae8118e
Fixing whitespace problems
...
llvm-svn: 111753
2010-08-22 00:08:10 +00:00
John McCall
475999dcf9
Extract calls to method pointers out as an ABI routine.
...
No functionality change.
llvm-svn: 111752
2010-08-22 00:05:51 +00:00
Howard Hinnant
940e211c87
Fixing whitespace problems
...
llvm-svn: 111751
2010-08-22 00:03:27 +00:00
Howard Hinnant
b3371f6f49
Fixing whitespace problems
...
llvm-svn: 111750
2010-08-22 00:02:43 +00:00
John McCall
86353416a7
The ARM C++ ABI is sufficiently different from the Itanium C++ ABI that
...
it deserves its own enumerator. Obviously the implementations should
closely follow the Itanium ABI except in cases of divergence.
llvm-svn: 111749
2010-08-21 22:46:04 +00:00
Michael J. Spencer
b186bc3c4b
Visual Studio tools used on win32 hosts when targeting win32.
...
llvm-svn: 111748
2010-08-21 21:55:07 +00:00
Howard Hinnant
9f1102b7fe
US 108, N3109
...
llvm-svn: 111747
2010-08-21 21:14:53 +00:00
Howard Hinnant
e8e7af2477
DE 23
...
llvm-svn: 111746
2010-08-21 21:01:59 +00:00
Howard Hinnant
3db88036f6
US 117
...
llvm-svn: 111745
2010-08-21 20:58:44 +00:00
Eli Friedman
ac305d2024
Delete dead comment.
...
llvm-svn: 111744
2010-08-21 20:19:51 +00:00
Greg Clayton
2cf205ff23
Fixed the Xcode project file to not build all architectures
...
for Debug builds. I accidentally checked this in with my last
round of changes.
llvm-svn: 111743
2010-08-21 20:12:22 +00:00
Howard Hinnant
4eb27b79c1
US 122, N3106
...
llvm-svn: 111742
2010-08-21 20:10:01 +00:00
Anton Korobeynikov
db9820ecaa
Use rip-rel addressing on win64 by default. For this we just
...
defaults to small pic code model.
llvm-svn: 111741
2010-08-21 17:21:11 +00:00
Fariborz Jahanian
f2afc804c3
twik to my previous patch for pr7936.
...
Build qualified version of ObjC pointers (not pointers) when
doing overload resolution.
llvm-svn: 111740
2010-08-21 17:11:09 +00:00
Benjamin Kramer
1f3b0c03e5
Use MDNode::destroy(). Fixes a delete/free mismatch.
...
llvm-svn: 111739
2010-08-21 15:07:23 +00:00
Benjamin Kramer
1e0cb91249
Avoid including mm_malloc.h in a cc1 test, it pulls in system headers.
...
llvm-svn: 111738
2010-08-21 13:39:38 +00:00
Zhongxing Xu
faf150bbc3
Place method near its class.
...
llvm-svn: 111737
2010-08-21 12:24:38 +00:00
Zhongxing Xu
7a1a8e25ea
Remove dead code.
...
llvm-svn: 111736
2010-08-21 11:05:46 +00:00
Zhongxing Xu
e11f17f5ed
Improve comments.
...
llvm-svn: 111735
2010-08-21 11:03:37 +00:00
Zhongxing Xu
5cba6c85c9
Remove a special case for OSAtomic functions. We can already bind and retrieve
...
with the same binding key. The only trick here is that sometimes the Symbolic
region is stored in with an LocAsInteger wrapper. We unwrap that in
SVal::getAsLocSymbol().
llvm-svn: 111734
2010-08-21 11:00:26 +00:00
John McCall
4887165193
DeclPtrTy -> Decl *
...
llvm-svn: 111733
2010-08-21 09:40:31 +00:00
Zhongxing Xu
e70b6d17a4
Remove dead code. We no longer need it because now we treat the first element
...
region and its base region as the same binding key.
llvm-svn: 111732
2010-08-21 08:55:42 +00:00
Zhongxing Xu
cdadf8d9b2
remove unused variable.
...
llvm-svn: 111731
2010-08-21 06:51:45 +00:00
Zhongxing Xu
adc3ac7012
When invalidating a struct region, whether its type definition exists is not
...
relavant any more, because we set its default value to a symbol, and the type of
default symbolic value is irrelavant.
llvm-svn: 111730
2010-08-21 06:26:59 +00:00
Michael J. Spencer
1d9c76d637
Fix typo in comment.
...
llvm-svn: 111729
2010-08-21 06:05:06 +00:00
Michael J. Spencer
377aa20e6e
MC: Add partial x86-64 support to COFF.
...
llvm-svn: 111728
2010-08-21 05:58:13 +00:00
John McCall
fed68df76c
This test needs a triple: it's checking the alignment of a pointer in bytes.
...
llvm-svn: 111727
2010-08-21 04:58:16 +00:00
Daniel Dunbar
5c816378f8
IRgen: Set the alignment correctly when creating LValue for a decls.
...
- Fixes PR5598.
- Review appreciated.
llvm-svn: 111726
2010-08-21 04:20:22 +00:00