summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add codegen patterns for VST1-lane instructions. Radar 8599955.Bob Wilson2010-11-034-13/+83
| | | | llvm-svn: 118176
* Check for extractelement with a variable operand for the element number.Bob Wilson2010-11-032-10/+32
| | | | | | For NEON we had been assuming this was always an immediate constant. llvm-svn: 118175
* Rename FindExecutable to PrependMainExecutablePath.Mikhail Glushenkov2010-11-036-26/+30
| | | | | | Makes it more clear that it is just a path manipulation function. llvm-svn: 118174
* 80-col violations, trailing whitespace.Mikhail Glushenkov2010-11-032-26/+27
| | | | llvm-svn: 118173
* Some fixes for synthesized ivar metadata (GNU runtime).David Chisnall2010-11-032-12/+20
| | | | llvm-svn: 118172
* Rename PointsToLocalMemory to PointsToLocalOrConstantMemory to makeDuncan Sands2010-11-031-8/+11
| | | | | | the code more self-documenting. llvm-svn: 118171
* Added cursor visitor that takes a block as an argument. Tested compilingDavid Chisnall2010-11-033-0/+59
| | | | | | | libclang with both clang -fblocks and gcc (no blocks support). Only exposed in the header to compilers that do have blocks support. llvm-svn: 118170
* Simplify uses of MVT and EVT. An MVT can be compared directlyDuncan Sands2010-11-0310-43/+33
| | | | | | | with a SimpleValueType, while an EVT supports equality and inequality comparisons with SimpleValueType. llvm-svn: 118169
* Fix a comment typo.Duncan Sands2010-11-031-1/+1
| | | | llvm-svn: 118168
* Inside the calling convention logic LocVT is always a simpleDuncan Sands2010-11-0316-123/+135
| | | | | | | | | | value type, so there is no point in passing it around using an EVT. Use the simpler MVT everywhere. Rather than trying to propagate this information maximally in all the code that using the calling convention stuff, I chose to do a mainly low impact change instead. llvm-svn: 118167
* fix test case.Zhongxing Xu2010-11-031-473/+457
| | | | llvm-svn: 118166
* Do not add elidable CXXConstructExpr as block-level expr.Zhongxing Xu2010-11-031-1/+2
| | | | llvm-svn: 118165
* If we have an undef mask our Elt will be -1 for our access, handleEric Christopher2010-11-031-3/+7
| | | | | | | | this by using an undef as a pointer. Fixes rdar://8625016 llvm-svn: 118164
* Fix typo, pointed out by Trevor Harmon.Duncan Sands2010-11-031-1/+1
| | | | llvm-svn: 118163
* Fix preload instruction isel. Only v7 supports pli, and only v7 with mp ↵Evan Cheng2010-11-0312-56/+103
| | | | | | extension supports pldw. Add subtarget attribute to denote mp extension support and legalize illegal ones to nothing. llvm-svn: 118160
* Added generating destructors for temporary objects. Two cases I know of, ↵Marcin Swiderski2010-11-033-31/+891
| | | | | | | | | that are not handled properly: 1. For statement: const C& c = C(0) ?: C(1) destructors generated for condition will not differ from those generated for case without prolonged lifetime of temporary, 2. There will be no destructor for constant reference member bound to temporary at the exit from constructor. llvm-svn: 118158
* Add support to match @llvm.prefetch to pld / pldw / pli. rdar://8601536.Evan Cheng2010-11-036-47/+111
| | | | llvm-svn: 118152
* Put the PC encoding in the correct bit position.Bill Wendling2010-11-031-1/+1
| | | | llvm-svn: 118151
* Revert while I debug test failures :-(Rafael Espindola2010-11-035-490/+20
| | | | llvm-svn: 118150
* Switch clang to run ld directly on linux. I tested this on all the linuxRafael Espindola2010-11-035-20/+490
| | | | | | | | | | | | | | | | | | | | | | distros listed by running gcc main.o -o main g++ main.o -o main gcc main.o -o main -static g++ main.o -o main -static gcc f.o -o f.so -shared g++ f.o -o f.so -shared and comparing the ld line with the one created by clang. I also added -m32/m64 in distros that support it. While I tested many distros, there will always be more. If you are hit by this it should be somewhat easy to add your distro. If you are in a hurry, do revert this, but please inform how to detect you distro and the ld command lines produced by the above gcc invocations. Most distros have some patches on gcc :-( llvm-svn: 118149
* Invert these branches by default, it makes assembly comparisons a littleEric Christopher2010-11-031-2/+2
| | | | | | easier to read. llvm-svn: 118148
* Fixed shared library unloads when the unloaded library doesn't come offGreg Clayton2010-11-036-120/+37
| | | | | | | | | | | | | | | | | | | the end of the list. We had an issue in the MacOSX dynamic loader where if we had shlibs: 1 - a.out 2 - a.dylib 3 - b.dylib And then a.dylib got unloaded, we would unload b.dylib due to the assumption that only shared libraries could come off the end of the list. We now properly search and find which ones get loaded. Added a new internal logging category for the "lldb" log channel named "dyld". This should allow all dynamic loaders to use this as a generic log channel so we can track shared library loads and unloads in the logs without having to have each plug-in make up its own logging channel. llvm-svn: 118147
* When setting a tied check if it's already tied. If it's tied to another ↵Anders Carlsson2010-11-032-2/+18
| | | | | | constraint it's invalid. Fixes PR3905. llvm-svn: 118146
* A number in an input constraint can't point to a read-write ('+') ↵Anders Carlsson2010-11-032-0/+10
| | | | | | constraint. Fixes PR3904. llvm-svn: 118145
* The MC code couldn't handle ARM LDR instructions with negative offsets:Bill Wendling2010-11-037-53/+160
| | | | | | | | | | | | vldr.64 d1, [r0, #-32] The problem was with how the addressing mode 5 encodes the offsets. This change makes sure that the way offsets are handled in addressing mode 5 is consistent throughout the MC code. It involves re-refactoring the "getAddrModeImmOpValue" method into an "Imm12" and "addressing mode 5" version. But not to worry! The majority of the duplicated code has been unified. llvm-svn: 118144
* Fix DAGCombiner to avoid going into an infinite loop when itDan Gohman2010-11-032-1/+68
| | | | | | | encounters (and:i64 (shl:i64 (load:i64), 1), 0xffffffff). This fixes rdar://8606584. llvm-svn: 118143
* Modified the thread plan that calls functions toSean Callanan2010-11-032-4/+102
| | | | | | | | set breakpoints at the different locations where an exception could be thrown, so that exceptions thrown by expressions are properly caught. llvm-svn: 118142
* Remove unused function.Jim Grosbach2010-11-032-9/+0
| | | | llvm-svn: 118141
* Remove the no longer used 'Modifier' optional operand to the ARMJim Grosbach2010-11-032-17/+8
| | | | | | printOperand() asm printer helper functions. rdar://8425198 llvm-svn: 118140
* Remove unused function.Jim Grosbach2010-11-032-12/+0
| | | | llvm-svn: 118139
* Provide an error when a non-identifier name (such as an operator) is used as aAlexis Hunt2010-11-033-1/+16
| | | | | | | | parameter name. Fixes PR8012. llvm-svn: 118138
* Break ARM addrmode4 (load/store multiple base address) into its constituentJim Grosbach2010-11-0310-106/+92
| | | | | | | parts. Represent the operation mode as an optional operand instead. rdar://8614429 llvm-svn: 118137
* Two sets of changes. Sorry they are intermingled.Evan Cheng2010-11-0317-166/+297
| | | | | | | | | | | | | 1. Fix pre-ra scheduler so it doesn't try to push instructions above calls to "optimize for latency". Call instructions don't have the right latency and this is more likely to use introduce spills. 2. Fix if-converter cost function. For ARM, it should use instruction latencies, not # of micro-ops since multi-latency instructions is completely executed even when the predicate is false. Also, some instruction will be "slower" when they are predicated due to the register def becoming implicit input. rdar://8598427 llvm-svn: 118135
* Modify scheduling itineraries to correct instruction latencies (not operandEvan Cheng2010-11-032-314/+314
| | | | | | latencies) of loads. llvm-svn: 118134
* Factor code out of APInt to form a isUIntN helper function.Dan Gohman2010-11-032-1/+7
| | | | llvm-svn: 118133
* Improve source-location information for CXXConstructExpr nodes, byDouglas Gregor2010-11-034-5/+77
| | | | | | | | | ensuring that they cover all of their child nodes. There's still a clang_getCursor()-related issue with CXXFunctionalCastExprs with CXXConstructExprs as children (see FIXME in the test case); I'll look at that separately. llvm-svn: 118132
* fix typo, patch by Trevor Harmon (PR8537)Chris Lattner2010-11-031-1/+1
| | | | llvm-svn: 118131
* Print an error as one big string instead of breaking it up.Dan Gohman2010-11-031-3/+3
| | | | llvm-svn: 118130
* Add more comment for dumpSessionInfo(self) method.Johnny Chen2010-11-031-0/+7
| | | | llvm-svn: 118129
* Delete unused variables.Dan Gohman2010-11-031-3/+0
| | | | llvm-svn: 118128
* Remove several unhelpful checks for isValid from sys::Path.Dan Gohman2010-11-031-26/+4
| | | | llvm-svn: 118127
* Make sure we're only storing a single bit here.Eric Christopher2010-11-021-2/+9
| | | | llvm-svn: 118126
* per a suggestion by Frits van Bommel, mark all MBlaze Pseudo Chris Lattner2010-11-023-5/+8
| | | | | | | instructions as isCodeGenOnly in the parent class instead of sprinkling it throughout the .td files. llvm-svn: 118125
* chase owen.Chris Lattner2010-11-021-3/+3
| | | | llvm-svn: 118124
* Fixed a bug where we left a definition hangingSean Callanan2010-11-021-0/+3
| | | | | | | for a global variable that we had replaced with a reference to a slot in the input array. llvm-svn: 118123
* tweak this to pass.Chris Lattner2010-11-021-5/+4
| | | | llvm-svn: 118122
* Revert r118097 to fix buildbots.Owen Anderson2010-11-022-203/+203
| | | | llvm-svn: 118121
* temporarily xfail this.Chris Lattner2010-11-021-2/+3
| | | | llvm-svn: 118120
* Completely reject instructions that have an operand in theirChris Lattner2010-11-023-56/+60
| | | | | | | | | | | | ins/outs list that isn't specified by their asmstring. Previously the asmmatcher would just force a 0 register into it, which clearly isn't right. Mark a bunch of ARM instructions that use this as isCodeGenOnly. Some of them are clearly pseudo instructions (like t2TBB) others use a weird hasExtraSrcRegAllocReq thing that will either need to be removed or the asmmatcher will need to be taught about it (someday). llvm-svn: 118119
* Tweak the opt -O2 / opt -O3 inliner thresholds to be the same as llvm-gcc andJakob Stoklund Olesen2010-11-021-2/+2
| | | | | | clang are using. llvm-svn: 118118
OpenPOWER on IntegriCloud