summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* don't add the \1 to the name.Chris Lattner2010-01-131-1/+1
| | | | llvm-svn: 93304
* remove uses of deprecated functions, this generates slightlyChris Lattner2010-01-131-6/+7
| | | | | | | | | different BlockAddress labels, but nothing semantically important. Add a FIXME that BlockAddress codegen is broken if the LLVM BB has an empty name (e.g. strip was run). llvm-svn: 93303
* use the new form of getNameWithPrefix, not makeNameProper.Chris Lattner2010-01-131-1/+1
| | | | | | | | | Among other things, this would do very weird things if the basic block name had (e.g.) a space in it on darwin: makeNameProper would add quotes, then the mcsymbol would escape the quotes. llvm-svn: 93302
* add new isSingleStringRef()/getSingleStringRef() methods to twine, Chris Lattner2010-01-131-2/+7
| | | | | | | | and use them to avoid a copy of a string in getNameWithPrefix in the common case. It seems like Value::setName and other places should use this as well? llvm-svn: 93301
* ugh, my last patch just sped up a method and changed all the clientsChris Lattner2010-01-131-19/+51
| | | | | | | | that I want to completely eliminate. Add fixme's so I remember this in the future, and add the missing helper that they should be upgraded to use instead. llvm-svn: 93300
* change Mangler::makeNameProper to return its result in a SmallVectorChris Lattner2010-01-138-127/+164
| | | | | | | | | | | | instead of returning it in an std::string. Based on this change: 1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef 2. Change a bunch of targets to call makeNameProper with a smallstring, making several of them *much* more efficient. 3. Rewrite Mangler::makeNameProper to not build names and then prepend prefixes, not use temporary std::strings, and to avoid other crimes. llvm-svn: 93298
* my mistake, Mangler::makeNameProper wants to take a twine, not a stringref!Chris Lattner2010-01-131-2/+5
| | | | llvm-svn: 93296
* change makeNameProper to take a stringref instead of std::string.Chris Lattner2010-01-131-8/+8
| | | | llvm-svn: 93295
* fix assert in AsmPrinter::EmitGlobalConstantLargeInt to match reality.Chris Lattner2010-01-131-2/+1
| | | | llvm-svn: 93293
* reduce nesting and code duplication in AsmPrinter::EmitGlobalConstantLargeInt.Chris Lattner2010-01-131-31/+26
| | | | llvm-svn: 93292
* reduce indentation and add a fast-path to EmitGlobalConstant for 8-byte Chris Lattner2010-01-131-5/+22
| | | | | | integers on 64-bit systems. llvm-svn: 93291
* reduce indentation and use early exits in AsmPrinter::EmitConstantValueOnlyChris Lattner2010-01-131-107/+122
| | | | llvm-svn: 93290
* Revert 93270 pending investigation of how stray non-constant values end up ↵Victor Hernandez2010-01-131-5/+0
| | | | | | in ValueEnumerator's ValueList during WriteConstants() llvm-svn: 93289
* Disable opt-ext pass to unbreak the build for now.Evan Cheng2010-01-131-1/+0
| | | | llvm-svn: 93286
* Remove debug option I accidentally left in.Evan Cheng2010-01-131-3/+0
| | | | llvm-svn: 93285
* Update CMake file.Ted Kremenek2010-01-131-1/+2
| | | | llvm-svn: 93283
* Remove the JustSP single-register regclass.Jakob Stoklund Olesen2010-01-132-14/+1
| | | | | | | | It was only being used by instructions with the t_addrmode_sp addressing mode, and that is pattern matched in a way that guarantees SP is used. There is never any register allocation done from this class. llvm-svn: 93280
* Add a quick pass to optimize sign / zero extension instructions. For targets ↵Evan Cheng2010-01-134-16/+171
| | | | | | | | where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg. For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used. llvm-svn: 93278
* Further progration of metadata operands. TheDale Johannesen2010-01-132-1/+12
| | | | | | | dumper doesn't really do what I want yet, but at least it doesn't crash now. llvm-svn: 93272
* Make WriteConstants() more robust against stray values in ValueEnumerator's ↵Victor Hernandez2010-01-121-0/+5
| | | | | | ValueList llvm-svn: 93270
* Fix a comment typo.Bob Wilson2010-01-121-1/+1
| | | | llvm-svn: 93261
* 1) Use the new SimplifyInstructionsInBlock routine instead of the copyChris Lattner2010-01-121-17/+14
| | | | | | | | | | | | in JT. 2) When cloning blocks for PHI or xor conditions, use instsimplify to simplify the code as we go. This allows us to squish common cases early in JT which opens up opportunities for subsequent iterations, and allows it to completely simplify the testcase. llvm-svn: 93253
* add a helper function.Chris Lattner2010-01-121-0/+24
| | | | llvm-svn: 93251
* Use Twine, instead of StringRef, for consistency.Devang Patel2010-01-121-5/+18
| | | | llvm-svn: 93249
* Use ilist_tratis to autoinsert and remove NamedMDNode from MDSymbolTable.Devang Patel2010-01-122-12/+25
| | | | llvm-svn: 93247
* Eliminate or_not_add and just use AddedComplexity so isel tries or_is_add ↵Evan Cheng2010-01-122-22/+13
| | | | | | patterns first. llvm-svn: 93245
* Revert commit 93204, since it causes the assembler to barfDuncan Sands2010-01-121-42/+0
| | | | | | | on x86-64 linux with messages like this: Error: Incorrect register `%r14' used with `l' suffix llvm-svn: 93242
* Fix typo.Duncan Sands2010-01-121-1/+1
| | | | llvm-svn: 93235
* Tweak commit 91745, which changed target data for both Mingw and Cygwin,Duncan Sands2010-01-121-1/+1
| | | | | | | to not touch Cygwin: the change caused llvm-gcc build failures due to long double getting the wrong size. Patch by Aaron Gray. llvm-svn: 93234
* Reapply the MOV64r0 patch, with a fix: MOV64r0 clobbers EFLAGS.Dan Gohman2010-01-125-38/+46
| | | | llvm-svn: 93229
* Update a partially obsolete comment.Dan Gohman2010-01-121-1/+1
| | | | llvm-svn: 93228
* Fix a typo in a comment.Dan Gohman2010-01-121-1/+1
| | | | llvm-svn: 93227
* tidy upChris Lattner2010-01-121-5/+1
| | | | llvm-svn: 93222
* Teach jump threading to duplicate small blocks when the branchChris Lattner2010-01-121-9/+123
| | | | | | | | | | | | | | | | | | | condition is a xor with a phi node. This eliminates nonsense like this from 176.gcc in several places: LBB166_84: testl %eax, %eax - setne %al - xorb %cl, %al - notb %al - testb $1, %al - je LBB166_85 + je LBB166_69 + jmp LBB166_85 This is rdar://7391699 llvm-svn: 93221
* Add TargetInstrInfo::isCoalescableInstr. It returns true if the specifiedEvan Cheng2010-01-122-0/+61
| | | | | | | | | instruction is copy like where the source and destination registers can overlap. This is to be used by the coalescable to coalesce the source and destination registers of instructions like X86::MOVSX64rr32. Apparently some crazy people believe the coalescer is too simple. llvm-svn: 93210
* some cleanup, and make it obvious that ProcessJumpOnPHI only worksChris Lattner2010-01-111-24/+14
| | | | | | on branches by renaming it and checking for a branch at the call site. llvm-svn: 93208
* Add manual ISD::OR fastisel selection routines. TableGen is no longer ↵Evan Cheng2010-01-111-0/+42
| | | | | | autogen them after 93152 and 93191. llvm-svn: 93204
* reenable the piece that turns trunc(zext(x)) -> x even if zext has multiple ↵Chris Lattner2010-01-111-3/+1
| | | | | | | | | uses, codegen has no apparent problem with the trunc version of this, because it turns into a simple subreg idiom llvm-svn: 93202
* Disable folding sext(trunc(x)) -> x (and other similar cast/cast cases) when ↵Chris Lattner2010-01-111-6/+14
| | | | | | | | | | | the trunc has multiple uses. Codegen is not able to coalesce the subreg case correctly and so this leads to higher register pressure and spilling (see PR5997). This speeds up 256.bzip2 from 8.60 -> 8.04s on my machine, ~7%. llvm-svn: 93200
* Consolidate ConvertGlobalValIDToValue, ConvertGlobalOrMetadataValIDToValue, ↵Victor Hernandez2010-01-112-111/+74
| | | | | | and ConvertValIDToValue into a more powerful ConvertValIDToValue() that does all three's work llvm-svn: 93197
* Extend r93152 to work on OR r, r. If the source set bits are known not to ↵Evan Cheng2010-01-112-9/+34
| | | | | | overlap, then select as an ADD instead. llvm-svn: 93191
* Revert 93158. It's breaking quite a few x86_64 tests.Evan Cheng2010-01-115-44/+37
| | | | llvm-svn: 93185
* Avoid adding PHI arguments for a predecessor that has gone away when a ↵Jakob Stoklund Olesen2010-01-111-14/+19
| | | | | | | | BRCOND was constant folded. This fixes PR5980. llvm-svn: 93184
* Remove unused string functions.Benjamin Kramer2010-01-111-12/+0
| | | | llvm-svn: 93183
* Do not turn 8-bit OR to ADD since ADD8ri is not 3-addressfiable.Evan Cheng2010-01-111-4/+1
| | | | llvm-svn: 93182
* Disable transformation of select of two loads to a select of address and ↵Mon P Wang2010-01-111-28/+41
| | | | | | | | then a load if the loads are not in the default address space because the transformation discards src value info. llvm-svn: 93180
* Add StrInStrNoCase, a StringRef version of CStrInCStrNoCase.Benjamin Kramer2010-01-111-0/+13
| | | | llvm-svn: 93174
* s/NextValueNo/NextMDValueNo while processing metadata.Devang Patel2010-01-112-12/+12
| | | | llvm-svn: 93165
* Turns out llvm-gcc still uses SplitString with a vector. Add it back until IBenjamin Kramer2010-01-111-0/+12
| | | | | | have a fix. llvm-svn: 93163
* Reimplement getToken and SplitString as "StringRef helper functions"Benjamin Kramer2010-01-113-37/+30
| | | | | | | | | - getToken is modeled after StringRef::split but it can split on multiple separator chars and skips leading seperators. - SplitString is a StringRef::split variant for more than 2 elements with the same behaviour as getToken. llvm-svn: 93161
OpenPOWER on IntegriCloud