aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2011-04-09Eliminate a divide-by-8 in BuildVMIClassTypeInfo() by using CharUnits forKen Dyck
the base offset. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129179 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-09Apply explicit braces to avoid ambiguous 'else' [-Wparentheses]Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129176 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-08Do not use zero as an upper bound for unbounded array because upper bound ↵Devang Patel
zero also indicates one element array. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129157 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-07[Reapply r128776, modified so that it does not break debug info.]Ken Dyck
Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129072 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-07Basic, untested implementation for an "unknown any" type requested by LLDB.John McCall
The idea is that you can create a VarDecl with an unknown type, or a FunctionDecl with an unknown return type, and it will still be valid to access that object as long as you explicitly cast it at every use. I'm still going back and forth about how I want to test this effectively, but I wanted to go ahead and provide a skeletal implementation for the LLDB folks' benefit and because it also improves some diagnostic goodness for placeholder expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129065 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-07[Reapply r128773. This is not the source of the issues Devang was seeingKen Dyck
with debug info.] Use CharUnits for the offsets in the VirtualBaseClassOffsetOffsetsMapTy. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129048 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-07[Reapply r128771. It wasn't the source of the issues Devang saw with debugKen Dyck
info.] Use CharUnits for the offset type in the ClassNamesAndOffsets map in dumpLayout(). No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129046 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-07Reapply r128770. It's not the cause of the issues Devang saw with debug info. Ken Dyck
Use CharUnits for the offsets in the VBaseOffsetOffsetsMapTy types. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129043 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06Refine rules for atomic property api toFariborz Jahanian
pass a previously failing clang test. // rdar://8808439 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129004 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-06If this is an intrinsic function, set the function's attributes to the ↵Peter Collingbourne
intrinsic's attributes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129000 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Simplify.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128957 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Fixes a regression caused by my last patch. Fariborz Jahanian
As a result, I had to remove a c++ version of a clang test which requires more scrutiny on my part. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128950 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Emit debug info for function template parameters.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128948 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Generate atomic api for atomic properties (x86 and x86_64Fariborz Jahanian
targets) when load/store results in multiple instructions. // rdar://8808439 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128937 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Remove unintentional check-in.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128928 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Fix typo.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128921 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Use TemplateParameterList to extract template parameter name.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128915 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Added *hidden* flags -print-options and -print-all-options soAndrew Trick
developers can see if their driver changed any cl::Option's. The current implementation isn't perfect but handles most kinds of options. This is nice to have when decomposing the stages of compilation and moving between different drivers. It's also a good sanity check when comparing results produced by different command line invocations that are expected to produce the comparable results. Note: This is not an attempt to prolong the life of cl::Option. On the contrary, it's a placeholder for a feature that must exist when cl::Option is replaced by a more appropriate framework. A new framework needs: a central option registry, dynamic name lookup, non-global containers of option values (e.g. per-module, per-function), *and* the ability to print options values and their defaults at any point during compilation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128911 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05whitespaceAndrew Trick
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128908 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Refactor.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128893 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Fix copy-and-paste bug that I introduced while tidying up the code.David Chisnall
Does anyone want to buy me a new brain? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128890 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Set AAPCS-VFP calling convention accordingly and hard float ABI command ↵Sandeep Patel
handling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128866 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-04Eliminate conservative check that is covered by isIncompleteType() check.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128857 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-04Incomplete type does not have any size.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128855 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-04Revert r128770, r128771, r128773 and r128776 for now. It breaks debug info.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128842 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-02Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() toKen Dyck
CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128776 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-02Use CharUnits for the offsets in the VirtualBaseClassOffsetOffsetsMapTy. NoKen Dyck
change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128773 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-02Use CharUnits for the offset type in the ClassNamesAndOffsets map inKen Dyck
dumpLayout(). No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128771 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-02Use CharUnits for the offsets in the VBaseOffsetOffsetsMapTy types. NoKen Dyck
change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128770 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-02Convert BaseOffset::NonVirtualOffset to CharUnits. No change inKen Dyck
functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128756 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-02Convert offset parameters and return values of VTableComponent methods toKen Dyck
CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128754 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-02Convert the offsets in VCallOffsetMap to CharUnits. No change inKen Dyck
functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128753 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-02Convert offset parameters of VTableBuilder::IsOverriderUsed() to CharUnits.Ken Dyck
No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128752 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-01Do not try calculate the size of forward-declared template type array.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128725 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-01IRgen: Reapply r128691 with a fix to ensure we don't increase alignment pastDaniel Dunbar
that of the array element type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128698 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-01Revert r128691, "IRgen: Improve GCC compatibility when dealing with packedDaniel Dunbar
arrays by propagating", it's breaking test in ways I don't understand yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128693 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31IRgen: Improve GCC compatibility when dealing with packed arrays by propagatingDaniel Dunbar
the array alignment to the array access. - This is more or less the best we can do without having alignment present in the type system, but is a long way from truly matching how GCC handles this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128691 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31Whoops.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128621 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31After much contemplation, I've decided that we probably shouldn't "unique"John McCall
__block object copy/dispose helpers for C++ objects with those for different variables with completely different semantics simply because they happen to both be no more aligned than a pointer. Found by inspection. Also, internalize most of the helper generation logic within CGBlocks.cpp, and refactor it to fit my peculiar aesthetic sense. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128618 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31Move all the significant __block code into CGBlocks.cpp. No functionalityJohn McCall
change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128608 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31Oops, prefer C-style cast hereMatt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128607 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31Silence GCC warning about differing types on the branches of a conditional ↵Matt Beaumont-Gay
expression git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128605 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31Convert the return value ofKen Dyck
VCallAndVBaseOffsetBuilder::getCurrentOffsetOffset() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128603 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31Convert the OffsetInLayoutClass parameter ofKen Dyck
VCallAndVBaseOffsetBuilder::AddVBaseOffsets() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128600 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31Convert the OffsetInLayoutClass of the VCallAndVBaseOffsetBuilderKen Dyck
constructor to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128598 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31Convert the RealBaseOffset parameter ofKen Dyck
VCallAndVBaseOffsetBuilder::AddVCallAndVBaseOffsets() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128596 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-31Use intrinsics for Neon vmull operations. Radar 9208957.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128590 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-30Fix IRGen issues related to using property-dot syntaxFariborz Jahanian
for prperty reference types. // rdar://9208606. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128551 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-30Remove PHINode::reserveOperandSpace(). Instead, add a parameter toJay Foad
PHINode::Create() giving the (known or expected) number of operands. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128538 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-30(Almost) always call reserveOperandSpace() on newly created PHINodes.Jay Foad
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128534 91177308-0d34-0410-b5e6-96231b3b80d8