summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Most PPC M[TF]CR instructions do not have side effectsHal Finkel2013-04-072-5/+19
| | | | llvm-svn: 178978
* Remove dead code.Rafael Espindola2013-04-071-17/+0
| | | | llvm-svn: 178977
* Remove unused argument.Rafael Espindola2013-04-071-3/+1
| | | | llvm-svn: 178976
* Sema: Don't crash when trying to emit a warning for a duplicate value in an ↵Benjamin Kramer2013-04-072-1/+10
| | | | | | | | | invalid enum. Fixes PR15693. A null check on a pointer returned from cast<> is a very dubious construct, do we have a checker for this somewhere? llvm-svn: 178975
* Fix PR15674 (and PR15603): a SROA think-o.Chandler Carruth2013-04-072-0/+64
| | | | | | | | | | | | | | The fix for PR14972 in r177055 introduced a real think-o in the *store* side, likely because I was much more focused on the load side. While we can arbitrarily widen (or narrow) a loaded value, we can't arbitrarily widen a value to be stored, as that changes the width of memory access! Lock down the code path in the store rewriting which would do this to only handle the intended circumstance. All of the existing tests continue to pass, and I've added a test from the PR. llvm-svn: 178974
* PPC pre-increment load instructions do not have side effectsHal Finkel2013-04-071-2/+3
| | | | | | A few were missed in r178972. llvm-svn: 178973
* PPC pre-increment load instructions do not have side effectsHal Finkel2013-04-072-3/+3
| | | | llvm-svn: 178972
* PPC MCRF instruction does not have side effectsHal Finkel2013-04-071-0/+1
| | | | llvm-svn: 178971
* PPC FMR instruction does not have side effectsHal Finkel2013-04-071-0/+1
| | | | llvm-svn: 178970
* DW_FORM_sec_offset should be a relocation on platforms that useEric Christopher2013-04-074-7/+35
| | | | | | | | | a relocation across sections. Do this for DW_AT_stmt list in the skeleton CU and check the relocations in the debug_info section. Add a FIXME for multiple CUs. llvm-svn: 178969
* [cmake] Avoid rel+asserts warnings when passing -UNDEBUGReid Kleckner2013-04-071-0/+3
| | | | | | | MSVC 2012 gives warning D9025, "overriding /D NDEBUG with -UNDEBUG". Removing the original definition of NDEBUG silences this. llvm-svn: 178967
* Implement LowerReturn_64 for SPARC v9.Jakob Stoklund Olesen2013-04-064-9/+200
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Integer return values are sign or zero extended by the callee, and structs up to 32 bytes in size can be returned in registers. The CC_Sparc64 CallingConv definition is shared between LowerFormalArguments_64 and LowerReturn_64. Function arguments and return values are passed in the same registers. The inreg flag is also used for return values. This is required to handle C functions returning structs containing floats and ints: struct ifp { int i; float f; }; struct ifp f(void); LLVM IR: define inreg { i32, float } @f() { ... ret { i32, float } %retval } The ABI requires that %retval.i is returned in the high bits of %i0 while %retval.f goes in %f1. Without the inreg return value attribute, %retval.i would go in %i0 and %retval.f would go in %f3 which is a more efficient way of returning %multiple values, but it is not ABI compliant for returning C structs. llvm-svn: 178966
* SPARC v9 stack pointer bias.Jakob Stoklund Olesen2013-04-063-9/+14
| | | | | | | | | | | 64-bit SPARC v9 processes use biased stack and frame pointers, so the current function's stack frame is located at %sp+BIAS .. %fp+BIAS where BIAS = 2047. This makes more local variables directly accessible via [%fp+simm13] addressing. llvm-svn: 178965
* Cache the VM page size that we get from task_vm_info so we don'tJason Molenda2013-04-061-1/+2
| | | | | | re-fetch the value. llvm-svn: 178962
* Implement PPCInstrInfo::FoldImmediateHal Finkel2013-04-064-0/+87
| | | | | | | | There are certain PPC instructions into which we can fold a zero immediate operand. We can detect such cases by looking at the register class required by the using operand (so long as it is not otherwise constrained). llvm-svn: 178961
* PPC ISEL is a select and never has side effectsHal Finkel2013-04-062-0/+2
| | | | llvm-svn: 178960
* Add a comment to TargetInstrInfo about FoldImmediateHal Finkel2013-04-061-0/+4
| | | | | | | This comment documents the current behavior of the ARM implementation of this callback, and also the soon-to-be-committed PPC version. llvm-svn: 178959
* Complete formal arguments for the SPARC v9 64-bit ABI.Jakob Stoklund Olesen2013-04-063-25/+314
| | | | | | | | | | | | | | | | | | | | | | | | All arguments are formally assigned to stack positions and then promoted to floating point and integer registers. Since there are more floating point registers than integer registers, this can cause situations where floating point arguments are assigned to registers after integer arguments that where assigned to the stack. Use the inreg flag to indicate 32-bit fragments of structs containing both float and int members. The three-way shadowing between stack, integer, and floating point registers requires custom argument lowering. The good news is that return values are passed in the exact same way, and we can share the code. Still missing: - Update LowerReturn to handle structs returned in registers. - LowerCall. - Variadic functions. llvm-svn: 178958
* Add optional LOG_TASK logging for MachVMMemory::PageSize when the call ↵Jason Molenda2013-04-061-0/+1
| | | | | | succeeds, too. llvm-svn: 178955
* Add optional LOG_TASK logging for MachVMMemory::PageSize() task_info call ↵Jason Molenda2013-04-061-0/+4
| | | | | | failure. llvm-svn: 178954
* Update MachVMMemory::PageSize to get the page size of a specific processJason Molenda2013-04-064-16/+45
| | | | | | | | | | | if we have an updated task_info call available; else fall back to getting the default host-wide page size. Update all uses of the vm page size to get it via MachVMMemory::PageSize(). <rdar://problem/13477763>, <rdar://problem/13498504> llvm-svn: 178953
* Remove nondeterminism introduced in r178950.Richard Smith2013-04-062-11/+14
| | | | llvm-svn: 178952
* Change the default of 'platform.plugin.darwin-kernel.search-locally-for-kexts'Jason Molenda2013-04-061-1/+1
| | | | | | to 'off' for a week or so while we test the behavior in different environments. llvm-svn: 178951
* When an internal-linkage function or variable is declared within an extern "C"Richard Smith2013-04-063-0/+96
| | | | | | | | | | linkage specification, and is marked as __attribute__((used)), try to also give it the unmangled name (by emitting an internal linkage alias) if nothing else within the translation unit would use that name. This allows inline asm in that translation unit to use the entity via its unmangled name, which people apparently rely on. llvm-svn: 178950
* typoNadav Rotem2013-04-061-1/+1
| | | | llvm-svn: 178949
* Remove last use of InMemoryStruct from MachOObjectFile.cpp.Rafael Espindola2013-04-062-4/+51
| | | | llvm-svn: 178948
* Don't use InMemoryStruct<macho::SymtabLoadCommand>.Rafael Espindola2013-04-062-21/+65
| | | | | | | This also required not using the RegisterStringTable API, which is also a good thing. llvm-svn: 178947
* Don't use InMemoryStruct in getSymbol64TableEntry.Rafael Espindola2013-04-062-26/+28
| | | | llvm-svn: 178946
* Don't use InMemoryStruct in getSymbolTableEntry.Rafael Espindola2013-04-062-25/+30
| | | | llvm-svn: 178945
* [analyzer] When creating a trimmed graph, preserve whether a node is a sink.Jordan Rose2013-04-062-1/+14
| | | | | | | | | | | | | | This is important because sometimes two nodes are identical, except the second one is a sink. This bug has probably been around for a while, but it wouldn't have been an issue in the old report graph algorithm. I'm ashamed to say I actually looked at this the first time around and thought it would never be a problem...and then didn't include an assertion to back that up. PR15684 llvm-svn: 178944
* Don't use InMemoryStruct in getRelocation.Rafael Espindola2013-04-062-34/+28
| | | | llvm-svn: 178943
* [objcmt] Fix a mishandled conversion to objc directory literal.Argyrios Kyrtzidis2013-04-063-0/+4
| | | | | | rdar://13181413 llvm-svn: 178942
* Dwarf: use utostr on CUID to append to SmallString.Manman Ren2013-04-061-1/+1
| | | | | | | | | We used to do "SmallString += CUID", which is incorrect, since CUID will be truncated to a char. rdar://problem/13573833 llvm-svn: 178941
* Add VTune as an optional external dependency and add task tracking.Michael J. Spencer2013-04-065-1/+182
| | | | llvm-svn: 178940
* <rdar://problem/13325066> Destroy std::initializer_list temporaries whose ↵Douglas Gregor2013-04-062-4/+39
| | | | | | lifetime has been extended by reference binding. llvm-svn: 178939
* [analyzer] Shorten the malloc checker’s leak messageAnna Zaks2013-04-0613-102/+103
| | | | | | As per Ted’s suggestion! llvm-svn: 178938
* Rework how ObjC method inherit deprecated/availability.Ted Kremenek2013-04-065-21/+45
| | | | | | | | | | | | | | | | | | | | | New rule: - Method decls in @implementation are considered "redeclarations" and inherit deprecated/availability from the @interface. - All other cases are consider overrides, which do not inherit deprecated/availability. For example: (a) @interface redeclares a method in an adopted protocol. (b) A subclass redeclares a method in a superclass. (c) A protocol redeclares a method from another protocol it adopts. The idea is that API authors should have the ability to easily move availability/deprecated up and down a class/protocol hierarchy. A redeclaration means that the availability/deprecation is a blank slate. Fixes <rdar://problem/13574571> llvm-svn: 178937
* Don't call DisableBreakpointSite (i.e. don't try to remove the breakpoint ↵Jim Ingham2013-04-061-1/+3
| | | | | | | | | | from the target process) if the target process is no longer alive. <rdar://problem/13320991> llvm-svn: 178936
* [analyzer] Reword error messages for nil keys and values of NSMutableDictionary.Anna Zaks2013-04-052-14/+25
| | | | llvm-svn: 178935
* [analyzer] Remove another redundancy from trackNullOrUndefAnna Zaks2013-04-051-6/+0
| | | | llvm-svn: 178934
* [analyzer] Fix null tracking for the given test case, by using the proper ↵Anna Zaks2013-04-052-18/+21
| | | | | | state and removing redundant code. llvm-svn: 178933
* Removed trailing whitespace.Michael Gottesman2013-04-051-27/+27
| | | | llvm-svn: 178932
* R600/SI: Add support for buffer stores v2Tom Stellard2013-04-0510-7/+110
| | | | | | | | v2: - Use the ADDR64 bit Reviewed-by: Christian König <christian.koenig@amd.com> llvm-svn: 178931
* R600/SI: Use same names for corresponding MUBUF operands and encoding fieldsTom Stellard2013-04-052-27/+27
| | | | | | | | | | | The code emitter knows how to encode operands whose name matches one of the encoding fields. If there is no match, the code emitter relies on the order of the operand and field definitions to determine how operands should be encoding. Matching by order makes it easy to accidentally break the instruction encodings, so we prefer to match by name. Reviewed-by: Christian König <christian.koenig@amd.com> llvm-svn: 178930
* R600: Add RV670 processorTom Stellard2013-04-051-0/+1
| | | | | | | This is an R600 GPU with double support. Reviewed-by: Christian König <christian.koenig@amd.com> llvm-svn: 178929
* R600/SI: Add processor types for each SI variantTom Stellard2013-04-0510-11/+16
| | | | | Reviewed-by: Christian König <christian.koenig@amd.com> llvm-svn: 178928
* R600/SI: Avoid generating S_MOVs with 64-bit immediates v2Tom Stellard2013-04-052-2/+31
| | | | | | | | | | | | | SITargetLowering::analyzeImmediate() was converting the 64-bit values to 32-bit and then checking if they were an inline immediate. Some of these conversions caused this check to succeed and produced S_MOV instructions with 64-bit immediates, which are illegal. v2: - Clean up logic Reviewed-by: Christian König <christian.koenig@amd.com> llvm-svn: 178927
* Enable early if conversion on PPCHal Finkel2013-04-056-22/+167
| | | | | | | | | | | | | On cores for which we know the misprediction penalty, and we have the isel instruction, we can profitably perform early if conversion. This enables us to replace some small branch sequences with selects and avoid the potential stalls from mispredicting the branches. Enabling this feature required implementing canInsertSelect and insertSelect in PPCInstrInfo; isel code in PPCISelLowering was refactored to use these functions as well. llvm-svn: 178926
* Correct the PPC A2 misprediction penaltyHal Finkel2013-04-051-1/+1
| | | | | | | | The manual states that there is a minimum of 13 cycles from when the mispredicted branch is issued to when the correct branch target is issued. llvm-svn: 178925
* Added support "__attribute__((__vector_size__(B)))" and ↵Greg Clayton2013-04-0510-190/+356
| | | | | | | | | | | "__attribute__((ext_vector_type(N)))". Now we can: 1 - see the return value for functions that return types that use the "ext_vector_size" 2 - dump values that use the vector attributes ("expr $ymm0") 3 - modified the DWARF parser to correctly parse GNU vector types from the DWARF by turning them into clang::Type::ExtVector types instead of just standard arrays llvm-svn: 178924
OpenPOWER on IntegriCloud