Commit Graph

52105 Commits

Author SHA1 Message Date
Chris Lattner 40d9a5319a move target registry stuff to X86ATTAsmPrinter.cpp
llvm-svn: 82393
2009-09-20 07:39:06 +00:00
Chris Lattner b95a9cd6a7 simplify this now that createX86CodePrinterPass is trivial
llvm-svn: 82392
2009-09-20 07:37:51 +00:00
Chris Lattner 288a95da0c rename X86ATTAsmPrinter class -> X86AsmPrinter
llvm-svn: 82391
2009-09-20 07:35:34 +00:00
Chris Lattner 00b4508bb0 remove the asmstring, it is now dead. Improve comment.
llvm-svn: 82390
2009-09-20 07:32:00 +00:00
Nick Lewycky 9b3ed87506 Peer through zext and sext to eliminate them when it is safe to do so.
llvm-svn: 82389
2009-09-20 07:31:25 +00:00
Chris Lattner a93dcf1bc0 kill off printPICLabel now, it's specialness is handled by
the MachineInstr ->MCInst lowering process, not in the 
asmprinter.

llvm-svn: 82388
2009-09-20 07:28:26 +00:00
Chris Lattner 609fbed49f delete X86IntelAsmPrinter! Now -x86-asm-syntax just switches
the instruction syntax, not the entire asmprinter.

llvm-svn: 82387
2009-09-20 07:25:17 +00:00
Nick Lewycky b0225ba289 Fold 'icmp eq (icmp), true' into an xor(icmp).
llvm-svn: 82386
2009-09-20 07:21:39 +00:00
Chris Lattner 4479034537 Add an intel syntax MCInstPrinter implementation. You can now
transcode from AT&T to intel syntax with "llvm-mc foo.s -output-asm-variant=1"

llvm-svn: 82385
2009-09-20 07:17:49 +00:00
Chris Lattner 78f908c877 tidy up
llvm-svn: 82384
2009-09-20 07:16:54 +00:00
Nick Lewycky 22fc051bd7 Rewrite this check so that it checks what it's supposed to and doesn't use
CHECK-NOT.

llvm-svn: 82383
2009-09-20 07:00:24 +00:00
Chris Lattner a15f0044a0 eliminate a use of strtoul.
llvm-svn: 82382
2009-09-20 06:58:54 +00:00
Chris Lattner 17ec6b11d2 split random COFF asmprinter state out to X86COFFMachineModuleInfo.h.
Make dllexport directives come out in determinstic order.

llvm-svn: 82381
2009-09-20 06:45:52 +00:00
Nick Lewycky ff550aa36d Correct the comment; this applies to fcmp too.
llvm-svn: 82380
2009-09-20 06:27:35 +00:00
Nick Lewycky 0f8348e85b Remove tab, again.
llvm-svn: 82379
2009-09-20 06:26:34 +00:00
Nick Lewycky 28260409f2 Teach the constant folder how to not a cmpinst.
llvm-svn: 82378
2009-09-20 06:24:51 +00:00
Chris Lattner 56efff07f5 smallvectorize getExtraOptionNames
llvm-svn: 82377
2009-09-20 06:21:43 +00:00
Chris Lattner 5c63f7b6b8 add a helper method.
llvm-svn: 82376
2009-09-20 06:21:20 +00:00
Chris Lattner 131dca9c48 minor cleanups.
llvm-svn: 82375
2009-09-20 06:18:38 +00:00
Daniel Dunbar f2719e6c6a Add 'make check-all', which runs the LLVM tests along with the clang tests if
its in the standard location.

llvm-svn: 82374
2009-09-20 06:17:21 +00:00
Daniel Dunbar b18efec822 Follow googletest logic for suppressing warnings in unittests/UnitTestMain.
llvm-svn: 82373
2009-09-20 06:17:12 +00:00
Chris Lattner 00f53807c3 strength reduce further StringRef-> const char*, saving another 620 bytes.
llvm-svn: 82372
2009-09-20 05:53:47 +00:00
Nick Lewycky 4a03452077 Try turning icmp(bitcast(x), bitcast(y)) into icmp(bitcast(bitcast(x)), y) in
the hopes that the two bitcasts will merge.

llvm-svn: 82371
2009-09-20 05:48:50 +00:00
Chris Lattner b1f2e101db switch an std::string to StringRef, shaving 400 bytes off CommandLine.o
llvm-svn: 82370
2009-09-20 05:48:01 +00:00
Nick Lewycky 2b31b53d97 Remove tabs I added.
llvm-svn: 82369
2009-09-20 05:47:45 +00:00
Chris Lattner 6ec8caf003 the switch from std::map -> StringMap caused --help output to be in
non-sorted order, restore the sort.

llvm-svn: 82368
2009-09-20 05:37:24 +00:00
Chris Lattner 8d0309daa0 eliminate the duplicate detection loop, moving it into the loop that populates the Opts vector in the first place.
llvm-svn: 82367
2009-09-20 05:22:52 +00:00
Chris Lattner 64dbb5ca5a Eliminate a masochistic "algorithm" loop, shrinking CommandLine.o from 71524->70700 bytes.
llvm-svn: 82366
2009-09-20 05:18:28 +00:00
Chris Lattner 28610b9878 don't use count + insert, just do insert + failure. Also, instead of deleting from
the middle of a vector, swap the last element in and pop_back.  Also saves 330 bytes :)

llvm-svn: 82365
2009-09-20 05:15:12 +00:00
Chris Lattner 41f8b0b7a6 switch to SmallPtrSet instead of std::set, saving 1K from the
release-asserts .o file (72900->71856).

llvm-svn: 82364
2009-09-20 05:12:14 +00:00
Chris Lattner f74e28abfa change an std::sort to an array_pod_sort call, shrinking CommandLine.o by 9%.
llvm-svn: 82363
2009-09-20 05:06:23 +00:00
Chris Lattner e7c1e210c7 Several changes together in a murky mess:
1. Change some "\n" -> '\n'.
2. eliminte some std::string's by using raw_ostream::indent.
3. move a bunch of code out of the main arg parser routine into
   a new static HandlePrefixedOrGroupedOption function.
4. Greatly simplify the implementation of getOptionPred, and make
   it avoid splitting prefix options at = when that doesn't match
   a non-prefix option.

llvm-svn: 82362
2009-09-20 05:03:30 +00:00
Nick Lewycky 9e085545f8 Clean up the usage of evaluateICmpRelation's return value.
Add another line to the ConstantExprFold test to demonstrate the GEPs may not
wrap around in either the signed or unsigned senses.

llvm-svn: 82361
2009-09-20 04:27:06 +00:00
Daniel Dunbar ecbb126e34 Fix refacto, this code was expecting to stride past the argument prefix.
llvm-svn: 82360
2009-09-20 04:03:41 +00:00
Daniel Dunbar 6058b51f8c Strip trailing whitespace.
llvm-svn: 82359
2009-09-20 04:03:34 +00:00
Daniel Dunbar 97f0970671 A few more tabs -> spaces.
llvm-svn: 82358
2009-09-20 04:03:25 +00:00
Nick Lewycky 2949a2398c Remove dead store by taking a guess at what Chris meant. I wasn't able to
design a testcase that would tickle this behaviour.

llvm-svn: 82357
2009-09-20 03:48:46 +00:00
Bill Wendling f878d70720 Still one more thing wrong here...
llvm-svn: 82356
2009-09-20 02:27:06 +00:00
Daniel Dunbar 7d6781b0fe Tabs -> spaces, and remove trailing whitespace.
llvm-svn: 82355
2009-09-20 02:20:51 +00:00
Bill Wendling 0f899601f3 Here's fun! It turns out that these filter functions can be internal. If they're
internal, they shouldn't use the indirect pointer stuff. In the case of
throw_rethrow_test, it was marked as 'internal' and calculated its own offset to
its contents.

llvm-svn: 82354
2009-09-20 02:19:49 +00:00
Nick Lewycky 595b3dfcbe Delete dead code. sext and zext can not turn integers into pointers. Further,
the optimization described in the comment is only valid with target data.

llvm-svn: 82353
2009-09-20 02:11:47 +00:00
Chris Lattner 5a3fa4ef33 convert argname to StringRef, simplifying LookupOption.
llvm-svn: 82352
2009-09-20 02:02:24 +00:00
Chris Lattner 0a40a975dd convert 'Value' to StringRef which makes it easier to
maintain the "null is unspecified, empty is empty" semantics.

llvm-svn: 82351
2009-09-20 01:53:12 +00:00
Chris Lattner 40fef8032e Change CommaSeparated processing to do it with StringRef instead of temporary std::strings.
This requires StringRef'izing ProvideOption which I also did.

llvm-svn: 82350
2009-09-20 01:49:31 +00:00
Nick Lewycky e0332983fd Value* were never meant to be const. Removing constness from the constant
folder removes a lot of const_casting and requires no changes to clang or
llvm-gcc.

llvm-svn: 82349
2009-09-20 01:35:59 +00:00
Chris Lattner 77c2724360 rewrite ParseCStringVector in terms of stringref.
llvm-svn: 82348
2009-09-20 01:33:46 +00:00
Chris Lattner 372a8ae403 move a couple non-trivial methods out of line, add new
find_first_of/find_first_of methods.

llvm-svn: 82347
2009-09-20 01:22:16 +00:00
Chris Lattner 1b88fbdaa3 coding style cleanup
llvm-svn: 82346
2009-09-20 01:11:23 +00:00
Chris Lattner 3b8adaf488 convert a bunch more stuff to use StringRef. The ArgName arguments are now
stringref because they may not be nul terminated.  For options like -Lfoo
this now avoids a O(n)  temporary std::strings where N is the length of 
the string after -L.

llvm-svn: 82345
2009-09-20 00:40:49 +00:00
Chris Lattner 2b807cb364 add size_t and a version of rfind that allows specification of where
to scan from.

llvm-svn: 82343
2009-09-20 00:38:28 +00:00
Dale Johannesen a894053a9b When computing live intervals for earlyclobber operands,
we pushed the beginning of the interval back 1, so the
interval would overlap with inputs that die.  We were
also pushing the end of the interval back 1, though,
which means the earlyclobber didn't overlap with other
output operands.  Don't do this.  PR 4964.

llvm-svn: 82342
2009-09-20 00:36:41 +00:00
Chris Lattner ca2552d9f9 avoid a bunch of malloc thrashing for PositinoalVals by eliminating
a std::vector and a bunch of std::string temporaries.

llvm-svn: 82341
2009-09-20 00:07:40 +00:00
Nick Lewycky 605109d151 Teach the constant folder how to handle a few simple i1 cases.
llvm-svn: 82340
2009-09-20 00:04:02 +00:00
Chris Lattner fa9c6f43a0 Avoid some temporary strings.
llvm-svn: 82339
2009-09-19 23:59:02 +00:00
Chris Lattner 84c1527b6b add some more overloads of StringRef::getAsInteger for
common and useful integer types.

llvm-svn: 82338
2009-09-19 23:58:48 +00:00
Chris Lattner 11b64b34d9 add a simple c_str() method to SmallString.
llvm-svn: 82337
2009-09-19 23:57:31 +00:00
Bill Wendling 85689b2065 Revert r82274. It's causing failures in the CINT2006 benchmarks.
llvm-svn: 82336
2009-09-19 22:02:37 +00:00
Daniel Dunbar fe4f5c5c8f Prefer super class constructor to explicit initialization.
llvm-svn: 82335
2009-09-19 20:40:28 +00:00
Daniel Dunbar bce047da64 Tabs -> spaces (really?)
llvm-svn: 82334
2009-09-19 20:40:21 +00:00
Daniel Dunbar be22ec4cfc Fix indentation.
llvm-svn: 82333
2009-09-19 20:40:14 +00:00
Daniel Dunbar c418d6b106 Strip trailing whitespace.
llvm-svn: 82332
2009-09-19 20:40:05 +00:00
Daniel Dunbar 86f158ccb6 RHS of assignment should be const reference.
llvm-svn: 82331
2009-09-19 20:39:50 +00:00
Nick Lewycky 1303c0ab86 Remove the default value for ConstantStruct::get's isPacked parameter and
update the code which was broken by this.

llvm-svn: 82327
2009-09-19 20:30:26 +00:00
Chris Lattner 68ee70035e provide a "strtoull" operation that works on StringRef's.
llvm-svn: 82322
2009-09-19 19:47:14 +00:00
Nick Lewycky 3b8bd05081 Add a comment explaining why you would ever want to do this.
llvm-svn: 82319
2009-09-19 19:00:06 +00:00
Chris Lattner aecd74d895 convert a bunch of std::strings to use StringRef. This should eliminate
a massive number of temporary strings created when parsing a command line.
More still left to eliminate.

llvm-svn: 82318
2009-09-19 18:55:05 +00:00
Nick Lewycky 7e6deb1cb4 Lett users of sparse propagation do their own thing with phi nodes if they want
to. This can be combined with LCSSA or SSI form to store more information on a
PHINode than can be computed by looking at its incoming values.

llvm-svn: 82317
2009-09-19 18:33:36 +00:00
Duncan Sands 1636b7ef47 The flag "--dot-cfg-only" is at the moment equivalent to the flag "--dot-cfg".
It prints the content of all bbs, instead of printing empty bbs to make the
CFG more readable.  Fix this.  Patch by Tobias Grosser.

llvm-svn: 82315
2009-09-19 11:25:44 +00:00
Evan Cheng b82b5514fe Fix funky comments.
llvm-svn: 82314
2009-09-19 10:09:15 +00:00
Evan Cheng 1c69c47b23 Update comments.
llvm-svn: 82313
2009-09-19 10:08:51 +00:00
Benjamin Kramer 543d9b2fba Try to speed up the slowest parts of the CommandLine library
- Replace std::map<std::string with StringMap
- Eliminate unnecessary std::string copies
- ~10% speed-up for clang's testsuite on my machine (debug build)

llvm-svn: 82312
2009-09-19 10:01:45 +00:00
Evan Cheng 9827ad39a7 Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks.
llvm-svn: 82311
2009-09-19 09:51:03 +00:00
Victor Hernandez 5d034499ad Enhance transform passes so that they apply the same tranforms to malloc calls as to MallocInst.
Reviewed by Dan Gohman.

llvm-svn: 82300
2009-09-18 22:35:49 +00:00
Chris Lattner 1457d067fa remove an extraneous mem2reg pass early in the pipe. Since
this is run after the 'standard function passes', SRoA was
recently run.  This saves a domfrontier construction. Thanks
to Eli for noticing this.

llvm-svn: 82291
2009-09-18 22:03:29 +00:00
Chris Lattner b069ec63a4 reduce indentation by using an early exit, and add a comment,
no functionality change.

llvm-svn: 82290
2009-09-18 22:01:30 +00:00
Bob Wilson 8c33d67fbf Fix a comment typo and some whitespace.
llvm-svn: 82285
2009-09-18 21:43:11 +00:00
Bob Wilson 3c21a35908 Fix a typo in an assertion message.
llvm-svn: 82284
2009-09-18 21:42:44 +00:00
Bill Wendling 053237109a Factor out label difference creation.
llvm-svn: 82282
2009-09-18 21:37:56 +00:00
Victor Hernandez 537d8d99be Enhance analysis passes so that they apply the same analysis to malloc calls as to MallocInst.
Reviewed by Eli Friedman.

llvm-svn: 82281
2009-09-18 21:34:51 +00:00
Dan Gohman 51f5442403 Delete the label names from this test to make it less fragile.
llvm-svn: 82276
2009-09-18 21:23:12 +00:00
Bill Wendling 43f2cd7757 It's inefficient to have place the exception tables (which contain the LSDA)
into the __DATA section. At launch time, dyld has to update most of the section
to fix up the type info pointers. It's better to place it into the __TEXT
section and use pc-rel indirect pointer encodings. Similar to the personality
routine.

llvm-svn: 82274
2009-09-18 21:14:36 +00:00
Evan Cheng 270d0f986f Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes.
Not functionality change yet.

llvm-svn: 82273
2009-09-18 21:02:19 +00:00
Shantonu Sen 7ba874bb5e Fix cmake build, which has a different -I that
causes the "../foo" to not find the file

llvm-svn: 82270
2009-09-18 20:35:59 +00:00
Chris Lattner 3a78ce3a56 Make a new X8632_MachoTargetObjectFile TLOF implementation whose
getSymbolForDwarfGlobalReference is smart enough to know that it 
needs to register the stub it references with MachineModuleInfoMachO,
so that it gets emitted at the end of the file.

Move stub emission from X86ATTAsmPrinter::doFinalization to the
new X86ATTAsmPrinter::EmitEndOfAsmFile asmprinter hook.  The important
thing here is that EmitEndOfAsmFile is called *after* the ehframes are
emitted, so we get all the stubs.

This allows us to remove a gross hack from the asmprinter where it would
"just know" that it needed to output stubs for personality functions.
Now this is all driven from a consistent interface.

The testcase change is just reordering the expected output now that the
stubs come out after the ehframe instead of before.

This also unblocks other changes that Bill wants to make.

llvm-svn: 82269
2009-09-18 20:22:52 +00:00
Chris Lattner 71a15b1316 add a new hook to allow targets to splat stuff at the end of the file.
Overriding doFinalization is pretty lame.

llvm-svn: 82268
2009-09-18 20:17:03 +00:00
Dale Johannesen 5e9a5c3664 Model the carry bit on ppc32. Without this we could
move a SUBFC (etc.) below the SUBFE (etc.) that consumed
the carry bit.  Add missing ADDIC8, noticed along the way.

llvm-svn: 82266
2009-09-18 20:15:22 +00:00
Dan Gohman 722b1eefdb Add support for using the FLAGS result of or, xor, and and instructions
on x86, to avoid explicit test instructions. A few existing tests changed
due to arbitrary register allocation differences.

llvm-svn: 82263
2009-09-18 19:59:53 +00:00
Sean Callanan 8e31aa773f Added RCL and RCR (rotate left and right with a
carry bit) instructions to the Intel instruction
tables.

llvm-svn: 82260
2009-09-18 19:35:23 +00:00
Devang Patel af206b8c88 Write and read metadata attachments.
llvm-svn: 82259
2009-09-18 19:26:43 +00:00
Victor Hernandez 788eaabd18 Update malloc call creation code (AllocType is now the element type of the malloc, not the resulting type).
In getMallocArraySize(), fix bug in the case that array size is the product of 2 constants.

Extend isArrayMalloc() and getMallocArraySize() to handle case where malloc is used as char array.

Ensure that ArraySize in LowerAllocations::runOnBasicBlock() is correct type.

Extend Instruction::isSafeToSpeculativelyExecute() to handle malloc calls.

Add verification for malloc calls.

Reviewed by Dan Gohman.

llvm-svn: 82257
2009-09-18 19:20:02 +00:00
Chris Lattner e133923abe duncan points out the EH selector values are signed.
llvm-svn: 82245
2009-09-18 18:34:29 +00:00
Chris Lattner 42bb0c1f8f convert some stuff to StringRef to avoid temporary std::strings.
llvm-svn: 82244
2009-09-18 18:31:37 +00:00
Chris Lattner bf1a769dcb add a comment.
llvm-svn: 82236
2009-09-18 18:10:19 +00:00
Chris Lattner 1e64038bcb This file can need access to the X86 instruction enums when the table exceeds 32-bits.
llvm-svn: 82235
2009-09-18 18:08:55 +00:00
Daniel Dunbar 73e76a1d60 Fix a few more conversion warnings on 4.0
llvm-svn: 82232
2009-09-18 17:48:05 +00:00
Mike Stump e79171ca42 Update to latest versions of config.guess and config.sub from
http://savannah.gnu.org/projects/config

llvm-svn: 82229
2009-09-18 17:10:27 +00:00
Anton Korobeynikov 592638ae05 Allow symbols to start from the digit if target requests it. This allows, e.g. pinning
variables to specified absolute address. Make use of this feature for MSP430.
This unbreaks PR4776.

llvm-svn: 82227
2009-09-18 16:57:42 +00:00
Nick Lewycky bf4c56d82b Stop using alloca.
llvm-svn: 82225
2009-09-18 16:46:16 +00:00
Xerxes Ranby cd92d24a4f Revert r82214 completely to fix build.
llvm-svn: 82218
2009-09-18 09:50:00 +00:00
Evan Cheng f4db6396e0 Revert r82214. It broke 403.gcc on x86_64 / Darwin.
llvm-svn: 82215
2009-09-18 08:26:06 +00:00