summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Recognize GNU attributes after 'enum class'. Fixes the libc++ build.John McCall2012-06-232-1/+13
| | | | llvm-svn: 159089
* Allow BBVectorize to fuse compare instructions.Hal Finkel2012-06-233-0/+37
| | | | llvm-svn: 159088
* Make CVTDQ2PS instruction use SSE2 predicate instead of SSE1. No functional ↵Craig Topper2012-06-232-9/+11
| | | | | | change because there are no patterns in the instructions. Also fix a typo in a comment. llvm-svn: 159087
* Move CVTPD2DQ to use SSE2 predicate instead of SSE3. Move DQ2PD and PD2DQ to ↵Craig Topper2012-06-232-87/+84
| | | | | | the SSE2 section of the file. llvm-svn: 159086
* objective-c: issue deprecation/unavailability warnings for methods called on Fariborz Jahanian2012-06-232-0/+35
| | | | | | id <Protocol>. // rdar://11618852 llvm-svn: 159084
* [asan] fix -Wsign-compareKostya Serebryany2012-06-231-4/+5
| | | | llvm-svn: 159083
* Add a microoptimization note.Benjamin Kramer2012-06-231-0/+6
| | | | llvm-svn: 159082
* Add relocation types for Hexagon processor; patch by Sidney Manning ↵Marshall Clow2012-06-234-0/+200
| | | | | | <sidneym@codeaurora.org> llvm-svn: 159081
* Add triple to test/Sema/attr-tls_model.cHans Wennborg2012-06-231-1/+1
| | | | | | Not all targets support __thread variables. llvm-svn: 159080
* Clean-up after r159077.Hans Wennborg2012-06-232-63/+6
| | | | | | | Remove temporary GlobalVariable constructors now that Clang has been updated (r159078). llvm-svn: 159079
* Support the tls_model attribute (PR9788)Hans Wennborg2012-06-2310-9/+124
| | | | | | | | | | | | | | This adds support for the tls_model attribute. This allows the user to choose a TLS model that is better than what LLVM would select by default. For example, a variable might be declared as: __thread int x __attribute__((tls_model("initial-exec"))); if it will not be used in a shared library that is dlopen'ed. This depends on LLVM r159077. llvm-svn: 159078
* Extend the IL for selecting TLS models (PR9788)Hans Wennborg2012-06-2324-47/+706
| | | | | | | | | | | | | | | This allows the user/front-end to specify a model that is better than what LLVM would choose by default. For example, a variable might be declared as @x = thread_local(initialexec) global i32 42 if it will not be used in a shared library that is dlopen'ed. If the specified model isn't supported by the target, or if LLVM can make a better choice, a different model may be used. llvm-svn: 159077
* Optimized usage of new SwitchInst case values (IntegersSubset type) in ↵Stepan Dyatkovskiy2012-06-234-27/+64
| | | | | | | | Local.cpp, Execution.cpp and BitcodeWriter.cpp. I got about 1% of compile-time improvement on my machines (Ubuntu 11.10 i386 and Ubuntu 12.04 x64). llvm-svn: 159076
* Use correct memory types for (V)CVTDQ2PD instructions.Craig Topper2012-06-231-3/+3
| | | | llvm-svn: 159075
* Silence an unused variable warning on release builds.Craig Topper2012-06-231-2/+2
| | | | llvm-svn: 159074
* Compress flags in X86 op folding to reduce space in static tables.Craig Topper2012-06-231-16/+16
| | | | llvm-svn: 159073
* Clean up a large number of C++11 attribute parse issues, including parsingAlexis Hunt2012-06-239-43/+254
| | | | | | | | | | | | | | | | | | attributes in more places where we didn't and catching a lot more issues. This implements nearly every aspect of C++11 attribute parsing, except for: - Attributes are permitted on explicit instantiations inside the declarator (but not preceding the decl-spec) - Attributes are permitted on friend declarations of functions. - Multiple instances of the same attribute in an attribute-list (e.g. [[noreturn, noreturn]], not [[noreturn]] [[noreturn]] which is conforming) are allowed. The first two are marked as expected-FIXME in the test file and the latter is probably a defect and is currently untested. Thanks to Richard Smith for providing the lion's share of the testcases. llvm-svn: 159072
* Make helper method static since it doesn't use anything in the class.Craig Topper2012-06-231-3/+3
| | | | llvm-svn: 159071
* Remove intrinsic specific instructions for 128-bit (V)CVTDQ2PD. Replace with ↵Craig Topper2012-06-232-26/+9
| | | | | | intrinsic patterns. Mem forms omitted because the load size is only 64-bits. llvm-svn: 159070
* Teach LiveVariables to handle <undef> operands.Jakob Stoklund Olesen2012-06-231-3/+5
| | | | | | | | It's simple: Don't treat <undef> operands as uses, and don't assume a virtual register has a defining instruction unless a real use has been seen. llvm-svn: 159061
* Support L__FUNCTION__ in microsoft mode, PR11789Nico Weber2012-06-238-7/+110
| | | | | | | | | | Heavily based on a patch from Aaron Wishnick <aaron.s.wishnick@gmail.com>. I'll clean up the duplicated function in CodeGen as a follow-up, later today or tomorrow. llvm-svn: 159060
* [Windows] Fix mangling of repeated types in the presence of bool and ↵Timur Iskhodzhanov2012-06-232-28/+71
| | | | | | function pointers PR13176,PR13177 llvm-svn: 159059
* Handle aliases to tls variables in all architectures, not just x86.Rafael Espindola2012-06-233-8/+21
| | | | llvm-svn: 159058
* (sub X, imm) gets canonicalized to (add X, -imm)Evan Cheng2012-06-234-7/+33
| | | | | | | | | | | | | | | There are patterns to handle immediates when they fit in the immediate field. e.g. %sub = add i32 %x, -123 => sub r0, r0, #123 Add patterns to catch immediates that do not fit but should be materialized with a single movw instruction rather than movw + movt pair. e.g. %sub = add i32 %x, -65535 => movw r1, #65535 sub r0, r0, r1 rdar://11726136 llvm-svn: 159057
* MicrosoftMangle: Fix mangling of integral constant non-type template ↵Charles Davis2012-06-232-1/+20
| | | | | | arguments in a class specialization. llvm-svn: 159056
* BoundsChecking: attach debug info to traps to make my life a bit more saneNuno Lopes2012-06-231-9/+10
| | | | llvm-svn: 159055
* Minor improvements to some C99 variadic-macro-related diagnostics.Richard Smith2012-06-226-25/+26
| | | | llvm-svn: 159054
* ARM: Add a better diagnostic for some out of range immediates.Jim Grosbach2012-06-224-10/+21
| | | | | | | | | | | As an example of how the custom DiagnosticType can be used to provide better operand-mismatch diagnostics, add a custom diagnostic for the imm0_15 operand class used for several system instructions. Update the tests to expect the improved diagnostic. rdar://8987109 llvm-svn: 159051
* TableGen: AsmMatcher support for better operand diagnostics.Jim Grosbach2012-06-222-16/+74
| | | | | | | | | | | | | "Invalid operand" may be a completely correct diagnostic, but it's often insufficiently specific to really help identify and fix the problem in assembly source. Allow a target to specify a more-specific diagnostic kind for each AsmOperandClass derived definition and use that to provide more detailed diagnostics when an operant of that class resulted in a match failure. rdar://8987109 llvm-svn: 159050
* Implement initial static analysis inlining support for C++ methods.Ted Kremenek2012-06-229-57/+98
| | | | llvm-svn: 159047
* Perform typo correction for base class specifiers.Kaelyn Uhrain2012-06-224-6/+20
| | | | llvm-svn: 159046
* Add support for the PPC isel instruction.Hal Finkel2012-06-229-14/+107
| | | | | | | The isel (integer select) instruction is supported on the 440 and A2 embedded cores and on the POWER7. llvm-svn: 159045
* FileCheckize tests.Chad Rosier2012-06-222-2/+10
| | | | llvm-svn: 159044
* [analyzer] Teach malloc checker that initWith[Bytes|Characters}NoCopy Anna Zaks2012-06-222-1/+13
| | | | | | relinquish memory. llvm-svn: 159043
* Rename fp-op fusion option (yet again) for compatibility with GCC option.Lang Hames2012-06-225-7/+7
| | | | llvm-svn: 159042
* Remove ProcessImplicitDefs.h which was unused.Jakob Stoklund Olesen2012-06-222-53/+27
| | | | | | The ProcessImplicitDefs class can be local to its implementation file. llvm-svn: 159041
* [analyzer] Remove a statistic - it's too expensive.Anna Zaks2012-06-221-6/+0
| | | | | | (Committed in r159038 by mistake.) llvm-svn: 159040
* Also verify the def index for early clobbers.Jakob Stoklund Olesen2012-06-221-2/+3
| | | | llvm-svn: 159039
* [analyzer]scan-build: report the total number of steps analyzer performsAnna Zaks2012-06-223-1/+26
| | | | | | This would be useful to investigate performance issues. llvm-svn: 159038
* [analyzer] Fixup to r158958.Anna Zaks2012-06-223-2/+13
| | | | llvm-svn: 159037
* [analyzer] Report the cumulative number of steps the analyzer performs.Anna Zaks2012-06-221-0/+4
| | | | llvm-svn: 159036
* Whitespace.Chad Rosier2012-06-221-8/+8
| | | | llvm-svn: 159035
* Mechanical change to sink a #ifdef guard for a platform below theChandler Carruth2012-06-2236-72/+72
| | | | | | | | | | | include of int_lib.h. The purpose of this change is to make the C code conform to the pedantic rules of C99 -- an empty translation unit is not valid. It should have absolutely no functional impact, and changes nothing about the built libraries. llvm-svn: 159034
* Remove extraneous semicolons outside of functions. This fixes a largeChandler Carruth2012-06-2234-34/+34
| | | | | | number of -pedantic warnings. llvm-svn: 159033
* Reorder these things for clarity, and add -std=c99 to the compile flags.Chandler Carruth2012-06-221-9/+9
| | | | llvm-svn: 159032
* The StepOverBreakpoint plan should only explain eStopReasonTrace. It didn't ↵Jim Ingham2012-06-221-1/+10
| | | | | | cause any other exceptional stop reason. llvm-svn: 159031
* Delete a boring statistic.Jakob Stoklund Olesen2012-06-222-8/+0
| | | | llvm-svn: 159030
* Store live intervals in an IndexedMap.Jakob Stoklund Olesen2012-06-222-42/+34
| | | | | | It is both smaller and faster than DenseMap. llvm-svn: 159029
* Forgot this patch in r159023.Evan Cheng2012-06-221-1/+1
| | | | llvm-svn: 159028
* Revert r158679 - use case is unclear (and it increases the memory footprint).Hal Finkel2012-06-228-18/+18
| | | | | | | | | | Original commit message: Allow up to 64 functional units per processor itinerary. This patch changes the type used to hold the FU bitset from unsigned to uint64_t. This will be needed for some upcoming PowerPC itineraries. llvm-svn: 159027
OpenPOWER on IntegriCloud