summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add the heuristic to differentiate SSPStrong from SSPRequired.Bill Wendling2013-01-233-38/+2635
| | | | | | | | | | | | | | | | | | The requirements of the strong heuristic are: * A Protector is required for functions which contain an array, regardless of type or length. * A Protector is required for functions which contain a structure/union which contains an array, regardless of type or length. Note, there is no limit to the depth of nesting. * A protector is required when the address of a local variable (i.e., stack based variable) is exposed. (E.g., such as through a local whose address is taken as part of the RHS of an assignment or a local whose address is taken as part of a function argument.) llvm-svn: 173231
* Add the IR attribute 'sspstrong'.Bill Wendling2013-01-2314-44/+856
| | | | | | | | | | | | | | | | | | | | | SSPStrong applies a heuristic to insert stack protectors in these situations: * A Protector is required for functions which contain an array, regardless of type or length. * A Protector is required for functions which contain a structure/union which contains an array, regardless of type or length. Note, there is no limit to the depth of nesting. * A protector is required when the address of a local variable (i.e., stack based variable) is exposed. (E.g., such as through a local whose address is taken as part of the RHS of an assignment or a local whose address is taken as part of a function argument.) This patch implements the SSPString attribute to be equivalent to SSPRequired. This will change in a subsequent patch. llvm-svn: 173230
* Remove the last of uses that use the Attribute object as a collection of ↵Bill Wendling2013-01-232-7/+12
| | | | | | | | | attributes. Collections of attributes are handled via the AttributeSet class now. This finally frees us up to make significant changes to how attributes are structured. llvm-svn: 173229
* Remove the last of uses that use the Attribute object as a collection of ↵Bill Wendling2013-01-2310-59/+93
| | | | | | | | | attributes. Collections of attributes are handled via the AttributeSet class now. This finally frees us up to make significant changes to how attributes are structured. llvm-svn: 173228
* Make __attribute__((nonnull)) use the general expression evaluator to search forNick Lewycky2013-01-232-2/+23
| | | | | | | nulls instead of limiting itself to the language-defined "null pointer constant". llvm-svn: 173227
* Remove a compile time warning in RNBRemote::HandlePacket_qProcessInfoJason Molenda2013-01-231-2/+1
| | | | | | for non-x86 builds. llvm-svn: 173226
* Change the container-regs kv pair in the qRegsiterInfoJason Molenda2013-01-232-44/+44
| | | | | | | | | | reply to be hex encoded, not decimal. Fix the whitespace in the container-regs/invalidate-regs documentation, fix one ambiguous hex/decimal number in an example. llvm-svn: 173225
* docs: Update title of external tutorial.Sean Silva2013-01-231-1/+1
| | | | llvm-svn: 173224
* R600: rework handling of the constantsTom Stellard2013-01-2316-104/+483
| | | | | | | | | | | | | | | | | | | | Remove Cxxx registers, add new special register - "ALU_CONST" and new operand for each alu src - "sel". ALU_CONST is used to designate that the new operand contains the value to override src.sel, src.kc_bank, src.chan for constants in the driver. Patch by: Vadim Girlin Vincent Lejeune: - Use pointers for constants - Fold CONST_ADDRESS when possible Tom Stellard: - Give CONSTANT_BUFFER_0 its own address space - Use integer types for constant loads Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 173222
* R600: Add a CONST_ADDRESS node to model constant buf readTom Stellard2013-01-233-1/+12
| | | | | | | Patch by: Vincent Lejeune Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 173221
* R600: Factorise VTX_WORD0 and VTX_WORD1 in tblgen defTom Stellard2013-01-231-45/+65
| | | | | | | Patch by: Vincent Lejeune Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 173220
* Add support for reverse pointer induction variables. These are loops that ↵Nadav Rotem2013-01-234-7/+277
| | | | | | | | | | | | | contain pointers that count backwards. For example, this is the hot loop in BZIP: do { m = *--p; *p = ( ... ); } while (--n); llvm-svn: 173219
* clang/test/Driver/output-file-is-dir.c: This requires shell due to 'cd'.NAKAMURA Takumi2013-01-231-0/+1
| | | | llvm-svn: 173218
* Move everything over to TargetInfo.Michael J. Spencer2013-01-2352-1703/+458
| | | | | | | | I really would have liked to split this patch up, but it would greatly complicate the lld-core and lld drivers having to deal with both {Reader,Writer}Option and TargetInfo. llvm-svn: 173217
* <rdar://problem/12711206>Enrico Granata2013-01-239-70/+139
| | | | | | | | | | Extending ValueObjectDynamicValue so that it stores a TypeAndOrName instead of a TypeSP. This change allows us to reflect the notion that a ValueObject can have a dynamic type for which we have no debug information. Previously, we would coalesce that to the static type of the object, potentially losing relevant information or even getting it wrong. This fix ensures we can correctly report the class name for Cocoa objects whose types are hidden classes that we know nothing about (e.g. __NSArrayI for immutable arrays). As a side effect, our --show-types argument to frame variable no longer needs to append custom dynamic type information. llvm-svn: 173216
* [Driver] Don't remove non-regular files that were outputs.Daniel Dunbar2013-01-232-3/+9
| | | | llvm-svn: 173215
* Use the AttributeSet when removing multiple attributes. Use Attribute::AttrKindBill Wendling2013-01-239-23/+59
| | | | | | when removing one attribute. This further encapsulates the use of the attributes. llvm-svn: 173214
* Documentation cleanup: fixing documentation for FrontendAction.James Dennett2013-01-232-49/+55
| | | | | | | | | | | | | | * Fix a typo, s/BeginSourceAction/BeginSourceFile/, so that the documentation for FrontendAction::BeginSourceFileAction links correctly to BeginSourceFile; * Add some basic \file documentation for FrontendAction.h; * More use of "\brief" instead of repeating the name of the entity being documented; * Stop using Doxygen-style "///" comments in FrontendAction.cpp, as they were polluting the documentation for BeginSourceFile; * Drop incorrect "\see" markup that broke Doxygen's formatting; * Other minor documentation fixes. llvm-svn: 173213
* [Support][ErrorOr] Don't use nullptr :(Michael J. Spencer2013-01-231-6/+6
| | | | llvm-svn: 173212
* Use the AttributeSet when adding multiple attributes and an Attribute::AttrKindBill Wendling2013-01-232-4/+11
| | | | | | when adding a single attribute to the function. llvm-svn: 173211
* Use the AttributeSet when adding multiple attributes and an Attribute::AttrKindBill Wendling2013-01-233-16/+25
| | | | | | when adding a single attribute to the function. llvm-svn: 173210
* [Support][ErrorOr] Add optimized specialization of ErrorOr<void>.Michael J. Spencer2013-01-232-1/+109
| | | | | | | | ErrorOr<void> represents an operation that returns nothing, but can still fail. It should be used in cases where you need the aditional user data that ErrorOr provides over error_code. llvm-svn: 173209
* Fix compilation on Linux, which defines PATH_MAX in a weird place,Douglas Gregor2013-01-222-0/+10
| | | | | | from Saleem Abdulrasool! llvm-svn: 173208
* Add instruction encodings / disassembly support for u10 / lu10 instructions.Richard Osborne2013-01-223-12/+36
| | | | llvm-svn: 173204
* [Support][ErrorOr] Make old gcc happy.Michael J. Spencer2013-01-221-1/+1
| | | | | | Apparently this is how C++98 worked pre-DR. (Thanks Richard). llvm-svn: 173203
* Fixed typo.Michael Gottesman2013-01-221-2/+1
| | | | llvm-svn: 173202
* [ObjCARC] Refactored out the inner most 2-loops from PerformCodePlacement ↵Michael Gottesman2013-01-221-153/+198
| | | | | | | | | | | | | | | | into the method ConnectTDBUTraversals. The method PerformCodePlacement was doing too much (i.e. 3x loops, lots of different checking). This refactoring separates the analysis section of the method into a separate function while leaving the actual code placement and analysis preparation in PerformCodePlacement. *NOTE* Really this part of ObjCARC should be refactored out of the main pass class into its own seperate class/struct. But, it is not time to make that change yet though (don't want to make such an invasive change without fixing all of the bugs first). llvm-svn: 173201
* Fix an issue of pseudo atomic instruction DAG scheduleMichael Liao2013-01-223-3/+118
| | | | | | | | | | - Add list of physical registers clobbered in pseudo atomic insts Physical registers are clobbered when pseudo atomic instructions are expanded. Add them in clobber list to prevent DAG scheduler to mis-schedule them after these insns are declared side-effect free. - Add test case from Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 173200
* Add a warning when there is a macro defintion that has named parameters butKevin Enderby2013-01-222-0/+118
| | | | | | | | | | | | | the body does not use them and it appears the body has positional parameters. This can cause unexpected results as in the added test case. As the darwin version of gas(1) which only supported positional parameters, happened to ignore the named parameters. Now that we want to support both styles of macros we issue a warning in this specific case. rdar://12861644 llvm-svn: 173199
* Add a triple, per Ben's suggestion.Chad Rosier2013-01-221-2/+1
| | | | llvm-svn: 173198
* [mips] Implement MipsRegisterInfo::getRegPressureLimit.Akira Hatanaka2013-01-225-7/+31
| | | | llvm-svn: 173197
* More encapsulation work.Bill Wendling2013-01-227-63/+69
| | | | | | | Use the AttributeSet when we're talking about more than one attribute. Add a function that adds a single attribute. No functionality change intended. llvm-svn: 173196
* Have the integrated assembler give an error if $1 is used as an identifier inKevin Enderby2013-01-222-2/+12
| | | | | | | | | an expression. Currently this bug causes the line to be ignored in a release build and an assert in a debug build. rdar://13062484 llvm-svn: 173195
* Second attempt to fix ppc bots.Chad Rosier2013-01-221-1/+1
| | | | llvm-svn: 173193
* [Core] Move Resolver and SymbolTable over to TargetInfo.Michael J. Spencer2013-01-226-140/+114
| | | | | | No functionality change. llvm-svn: 173192
* Add x86 requirement to hopefully fix ppc bots.Chad Rosier2013-01-221-0/+1
| | | | llvm-svn: 173190
* [mips] Clean up code in MipsTargetLowering::LowerCall. No functional changeAkira Hatanaka2013-01-222-21/+14
| | | | | | intended llvm-svn: 173189
* PowerPC: fix __builtin_eh_return_data_regno returnAdhemerval Zanella2013-01-222-0/+14
| | | | llvm-svn: 173188
* [ms-inline asm] Remove the -fenable-experimental-ms-inline-asm flag. MS-styleChad Rosier2013-01-229-33/+3
| | | | | | inline assembly can be enable with -fasm-blocks or -fms-extensions alone. llvm-svn: 173186
* Split "discards qualifiers" warnings of -Wincompatible-pointer-types into ↵Ted Kremenek2013-01-223-3/+23
| | | | | | | | | | | | subgroup. This allows users to promote -Wincompatible-pointer-type warnings to errors but keep those for "discard qualifiers" as warnings (if they so desire). Addresses <rdar://problem/13062738>. llvm-svn: 173184
* Update docs: nullptr conversion tool landedDmitri Gribenko2013-01-221-3/+9
| | | | llvm-svn: 173183
* Small code change to improve performanceFariborz Jahanian2013-01-222-2/+9
| | | | | | in my last patch, suggested by Argyrios. llvm-svn: 173182
* Add forgotten test case for the x32 commitEli Bendersky2013-01-221-0/+24
| | | | llvm-svn: 173181
* objectiveC (take two): don't warn when in -Wselector mode andFariborz Jahanian2013-01-225-47/+41
| | | | | | | an unimplemented selector is consumed by "respondsToSelector:". // rdar://12938616 llvm-svn: 173179
* Add use-nullptr transform to cpp11-migrateEdwin Vane2013-01-2214-0/+631
| | | | | | | | | | | | | | | | | | | This transform converts the usage of null pointer constants (e.g. NULL, 0, etc.) in legacy C++ code and converts them to use the new C++11 nullptr keyword. - Added use-nullptr transform. - Added C++11 support to the final syntax check. Used ArgumentAdjuster class to add -std=c++11 option to the command line options. - Added tests for use-nullptr transform. - Added tests that exercises both loop-convert and use-nullptr in the source file. TODO: There's a known bug when using both -loop-convert and -use-nullptr at the same time. Author: Tareq A Siraj <tareq.a.siraj@intel.com> Reviewers: klimek, gribozavr llvm-svn: 173178
* [ms-inline asm] Remove a warning about ms-style inline assembly not beingChad Rosier2013-01-224-21/+15
| | | | | | supported. llvm-svn: 173177
* X86: Make sure we account for the FMA4 register immediate value, otherwise ↵Benjamin Kramer2013-01-222-1/+62
| | | | | | | | rip-rel relocations will be off by one byte. PR15040. llvm-svn: 173176
* Initial patch for x32 ABI support.Eli Bendersky2013-01-226-5/+34
| | | | | | | | Add the x32 environment kind to the triple, and separate the concept of pointer size and callee save stack slot size, since they're not equal on x32. llvm-svn: 173175
* Saleem Abdulrasool: If errno is defined as volatile int, the qualifier ↵Howard Hinnant2013-01-222-20/+20
| | | | | | | | | | | differences can cause template typename deductions on swap<> (used in string.cpp). Use decltype(errno) to replicate the type and qualifier information for holding the errno value. Because errno is expected to be assignable, there is no need to use typename std::remove_const<decltype(errno)>::type to hold the value. llvm-svn: 173172
* Make getDefinitiveDeclContext() actually return a DeclContext, as oneDouglas Gregor2013-01-223-9/+10
| | | | | | | would expect, and clean up the return/break inconsistencies. Thanks, Sebastian! llvm-svn: 173171
OpenPOWER on IntegriCloud