- Aug 30, 2013
-
-
Bill Schmidt authored
llvm-svn: 189638
-
Bill Schmidt authored
Here are a few more tests that now pass after the recent fast-isel commits. llvm-svn: 189637
-
Bill Schmidt authored
This is the next big chunk of fast-isel code. The primary purpose is to implement selection of loads and stores, but there is a lot of drag-along to support this. The common code to analyze addresses for both loads and stores is substantial. It's also necessary to add the materialization code for global values. Related to load-store processing is the code to fold loads into integer extends, since otherwise we generate lots of redundant instructions. We also need to add some overrides to some FastEmit routines to ensure we don't assign GPR 0 to a virtual register when this would change the meaning of an instruction. I added handling selection of a few binary arithmetic instructions, to enable committing some test cases I wrote a while back. Finally, ap couple of miscellaneous changes: * I cleaned up some poor style from a previous patch in PPCISelLowering.cpp, pointed out by David Blaikie. * I enlarged the Addr.Offset field to avoid sign problems with 32-bit offsets. llvm-svn: 189636
-
Andrew Trick authored
llvm-svn: 189635
-
Marshall Clow authored
llvm-svn: 189634
-
Eric Christopher authored
again. This test should a) test IR or be moved, and b) get an actual option for the dwarf pub sections. llvm-svn: 189633
-
Bill Wendling authored
llvm-svn: 189632
-
Eric Christopher authored
any maintained consumers of it on that platform. llvm-svn: 189631
-
Eric Christopher authored
llvm-svn: 189630
-
Richard Smith authored
llvm-svn: 189629
-
Fariborz Jahanian authored
should infer migration to NS_OPTIONS. llvm-svn: 189628
-
Richard Smith authored
these in eagerly if we're not actually processing a translation unit. The added laziness here also avoids us loading in parts of a CXXRecordDecl earlier than an upcoming class template specialization merging patch would like. Ideally, we should mark the vtable as used when we see a definition for the key function, rather than having a separate pass over dynamic classes at the end of the TU. The existing approach is pretty bad for PCH/modules, since it forcibly loads the declarations of all key functions in all imported modules, whether or not those key functions are defined. llvm-svn: 189627
-
Howard Hinnant authored
llvm-svn: 189626
-
Eli Friedman authored
I changed the diagnostic printing code because it's probably better to cut off a digit from DBL_MAX than to print something like 1.300000001 when the user wrote 1.3. llvm-svn: 189625
-
Eli Friedman authored
This is a re-commit of r189442; I'll follow up with clang changes. The previous default was almost, but not quite enough digits to represent a floating-point value in a manner which preserves the representation when it's read back in. The larger default is much less confusing. I spent some time looking into printing exactly the right number of digits if a precision isn't specified, but it's kind of complicated, and I'm not really sure I understand what APFloat::toString is supposed to output for FormatPrecision != 0 (or maybe the current API specification is just silly, not sure which). I have a WIP patch if anyone is interested. llvm-svn: 189624
-
Howard Hinnant authored
llvm-svn: 189623
-
Manman Ren authored
We use CXX mangler to generate unique identifier for external C++ struct, union, class and enum. Types with unique identifier are added to retained types by DIBuilder. Testing cases are updated to reflect the unique identifier generated for types. The order of MDNodes is changed because of retained types and testing cases are updated accordingly. Testing case debug-info-uuid.cpp now emits error with Itanium mangler, since uuid is not yet handled in Itanium mangler. And it will check for the error message. llvm-svn: 189622
-
Manman Ren authored
createClassType, createStructType, createUnionType, createEnumerationType, and createForwardDecl will retain a type when created with a unique identifier, to make sure they are treated as used even when all uses are replaced with the identifiers. Use TrackingVH<MDNode> instead of MDNode in AllRetainTypes, since the created node can later be updated. The change will be tested when clients of DIBuilder start to pass in non-empty unique identifier. llvm-svn: 189621
-
Peter Collingbourne authored
llvm-svn: 189620
-
Jim Grosbach authored
In addition to recognizing when the multiply's second argument is coming from an explicit VDUPLANE, also look for a plain scalar f32 reference and reference it via the corresponding vector lane. rdar://14870054 llvm-svn: 189619
-
Jim Grosbach authored
llvm-svn: 189618
-
Jim Grosbach authored
llvm-svn: 189617
-
DeLesley Hutchins authored
Patch by chris.wailes@gmail.com. llvm-svn: 189616
-
Reid Kleckner authored
Requires shuffling the CPack code up before add_subdirectory(tools), but that's where the version settings are anyway. llvm-svn: 189615
-
- Aug 29, 2013
-
-
Rui Ueyama authored
llvm-svn: 189614
-
Warren Hunt authored
Modified ms-build configuration file to be version locked to the VS2010 toolchain, this avoids conflicts with having VS2012 and Win7SDK used at the same time. llvm-svn: 189613
-
DeLesley Hutchins authored
unknown state. Patch by chris.wailes@gmail.com. llvm-svn: 189612
-
Ed Maste authored
Testing shows it works for at least trivial cases, while the USE_STANDARD_JIT case does not even work for those. Thus, don't define USE_STANDARD_JIT on FreeBSD. I've left the #if block choosing the appropriate #include in case it's useful for testing. llvm-svn: 189611
-
Howard Hinnant authored
Turn off extern templates for most uses. It is causing more problems than it is worth. The extern templates will still be built into the dylib, mainly for ABI stability purposes. And the client can still turn these back on with a #define if desire. This fixes http://llvm.org/bugs/show_bug.cgi?id=17027. However there's no associated test for the test suite because http://llvm.org/bugs/show_bug.cgi?id=17027 needs mismatched dylib and headers to fire. llvm-svn: 189610
-
Manman Ren authored
We had further discussions on how to retain types, whether to do it in front end or in DIBuilder. And we agree to do it in DIBuilder so front ends generating unique identifier do not need to worry about retaining them. llvm-svn: 189609
-
Ed Maste authored
llvm-svn: 189608
-
Ed Maste authored
This fixes a crash on FreeBSD llvm-svn: 189607
-
Aaron Ballman authored
llvm-svn: 189606
-
Aaron Ballman authored
Silencing a rather spurious warning from MSVC 11 about not all control paths returning a value (hint: they do). llvm-svn: 189605
-
Cameron Esfahani authored
Clean up some usage of Triple. The base class has methods for determining if the target is iOS and Linux. llvm-svn: 189604
-
Jean-Daniel Dupas authored
llvm-svn: 189603
-
Marshall Clow authored
llvm-svn: 189602
-
Marshall Clow authored
llvm-svn: 189601
-
Manman Ren authored
We use CXX mangler to generate unique identifier for external C++ struct, union, class and enum. Types with unique identifier are added to RetainedTypes to make sure they are treated as used even when all uses are replaced with the identifiers. A single type can be added to RetainedTypes multiple times. For example, both createForwardDecl and createLimitedType can add the same type to RetainedTypes. A set is used to avoid duplication when updating AllRetainTypes in DIBuilder. Testing cases are updated to reflect the unique identifier generated for types. The order of MDNodes is changed because of retained types and testing cases are updated accordingly. Testing case debug-info-uuid.cpp now emits error with Itanium mangler, since uuid is not yet handled in Itanium mangler. We choose to update RetainedTypes in clang, then at finalize(), we update AllRetainTypes in DIBuilder. The other choice is to update AllRetainTypes in DIBuilder when creating a DICompositeType with unique identifier. This option requires using ValueHandle for AllRetainTypes in DIBuilder since the created DICompositeType can be modified later on by setContainingType etc. llvm-svn: 189600
-
Kaelyn Uhrain authored
include/llvm/Support/UnicodeCharRanges.h:56:5: error: use of this statement in a constexpr constructor is a C++1y extension [-Werror,-Wc++1y-extensions] assert(rangesAreValid()); ^ llvm-svn: 189599
-