Commit Graph

31676 Commits

Author SHA1 Message Date
Eric Christopher d517ac0682 Nuke trailing whitespace.
llvm-svn: 80401
2009-08-28 22:33:43 +00:00
Anton Korobeynikov f43ab91486 Short-term workaround for frame-related weirdness on win64.
Some other minor win64 fixes as well.

Patch by Michael Beck!

llvm-svn: 80370
2009-08-28 16:06:41 +00:00
Andreas Neustifter 991beb9aaf Preparation for Optimal Edge Profiling:
This implements the maximum spanning tree algorithm on CFGs according to
weights given by the ProfileEstimator. This is then used to implement Optimal
Edge Profiling.

llvm-svn: 80358
2009-08-28 11:28:24 +00:00
Daniel Dunbar 3033db2448 Fix -Asserts warning, round two.
llvm-svn: 80354
2009-08-28 08:08:22 +00:00
Daniel Dunbar 2a2459a291 llvm-mc: .lsym is more unsupported than unimplemented, pending a use case appearing.
Also, all one of the file level flags are implemented.

llvm-svn: 80352
2009-08-28 07:08:47 +00:00
Daniel Dunbar 2701eee0ad llvm-mc: Support .comm emission.
llvm-svn: 80351
2009-08-28 07:08:35 +00:00
Evan Cheng 4047b53a40 Print a nl before pic labels so they start at a new line. This makes assembly more readable.
llvm-svn: 80350
2009-08-28 06:59:37 +00:00
Daniel Dunbar 42a39d038a llvm-mc: Support .zerofill emission.
- I'm still trying to figure out the cleanest way to implement this and match the assembler, currently there are some substantial differences.

llvm-svn: 80347
2009-08-28 05:49:21 +00:00
Daniel Dunbar a468a12dfa llvm-mc: Tweak section alignment and size computation to match 'as' closer.
llvm-svn: 80345
2009-08-28 05:49:04 +00:00
Daniel Dunbar d82ef0e923 llvm-mc: Factor getSectionData out of SwitchSection.
llvm-svn: 80344
2009-08-28 05:48:54 +00:00
Daniel Dunbar 96abad185d llvm-mc: Emit .lcomm as .zerofill.
llvm-svn: 80343
2009-08-28 05:48:46 +00:00
Daniel Dunbar cf72e1c03e llvm-mc: Add const to EmitZeroFill section argument.
llvm-svn: 80341
2009-08-28 05:48:22 +00:00
Daniel Dunbar 93665faad0 llvm-mc: Fix thinko in emitting values.
llvm-svn: 80340
2009-08-28 05:48:10 +00:00
Daniel Dunbar d46e3466e7 Fix -Asserts warning.
llvm-svn: 80338
2009-08-28 05:47:56 +00:00
Chris Lattner 0e8901803c finish a half formed thought :)
llvm-svn: 80334
2009-08-28 04:48:54 +00:00
Chris Lattner 51a25b06f7 Mark Andersen's as experimental.
llvm-svn: 80328
2009-08-28 00:45:47 +00:00
Chris Lattner bda82c20f3 Fix PR3913, patch by Jakub Staszak!
llvm-svn: 80327
2009-08-28 00:43:14 +00:00
Evan Cheng 6da267de23 v4, v5 does not support sxtb / sxth.
llvm-svn: 80322
2009-08-28 00:31:43 +00:00
Devang Patel 3082c01d68 Closure is a very generic name. Use AppleBlock instead.
llvm-svn: 80307
2009-08-27 23:51:51 +00:00
Bruno Cardoso Lopes e91191630b Revert 80278 for now, it caused a lot of MIPS tests to fail
llvm-svn: 80280
2009-08-27 19:57:56 +00:00
Bruno Cardoso Lopes 18c21daafb Revamp our friend Mips :)
Add MO flags to simplify the printing of relocations.
Remove the support for printing large code model relocs (which
aren't supported anyway).

llvm-svn: 80278
2009-08-27 19:40:40 +00:00
Dan Gohman 931ec72ebf Don't mark CMOV_GR8 as two-address, or commutable, since it's a pseudo.
llvm-svn: 80271
2009-08-27 18:16:24 +00:00
Dan Gohman ed10d7c441 Adjust the MachineBasicBlock verifier rules to be more
tolerant of blocks that end with "unreachable".

llvm-svn: 80270
2009-08-27 18:14:26 +00:00
Eric Christopher 69baa5139b Add FIXME for when we support more specific XMM registers.
llvm-svn: 80269
2009-08-27 18:08:16 +00:00
Eric Christopher 799c92bcfb Nuke trailing whitespace.
llvm-svn: 80268
2009-08-27 18:07:15 +00:00
Dan Gohman bc1d841a63 Use stripPointerCasts instead of doing the same manually.
llvm-svn: 80267
2009-08-27 18:02:03 +00:00
Dan Gohman 4ce5ade09d Teach getUnderlyingObject and skipPointerCasts about GlobalAliases.
llvm-svn: 80265
2009-08-27 17:55:13 +00:00
Dan Gohman 1f59f0146f Global Aliases are not identifiable objects.
llvm-svn: 80263
2009-08-27 17:52:56 +00:00
Dan Gohman 05f11351ab Handle TargetData with const.
llvm-svn: 80262
2009-08-27 17:51:25 +00:00
Anton Korobeynikov ba53af58f0 Hopefully the final missing part :(
scalar_to_vector is fully legal now

llvm-svn: 80251
2009-08-27 16:25:49 +00:00
Anton Korobeynikov 076f105d86 Forgot about actual change :)
llvm-svn: 80250
2009-08-27 16:10:17 +00:00
Devang Patel 7b8f61f3c8 Remove an entry from ValueMap before removing elements.
llvm-svn: 80247
2009-08-27 15:32:38 +00:00
Anton Korobeynikov 58ebae4acd Transform float scalar_to_vector into subreg accesses.
No idea whether this is profitable or not.

llvm-svn: 80245
2009-08-27 14:38:44 +00:00
Misha Brukman 209baa5c48 STRD and LDRD require ARMv5TE, not just ARMv5T.
See http://llvm.org/PR4687 for more info and links.

llvm-svn: 80244
2009-08-27 14:14:21 +00:00
Daniel Dunbar c7c5f9fa86 llvm-mc/Mach-O: Add MCCodeEmitter support, for encoding instructions.
- No relocations yet, of course.

llvm-svn: 80235
2009-08-27 08:17:51 +00:00
Daniel Dunbar 981a71c302 llvm-mc/X86: Implement single instruction encoding interface for MC.
- Note, this is a gigantic hack, with the sole purpose of unblocking further
   work on the assembler (its also possible to test the mathcer more completely
   now).

 - Despite being a hack, its actually good enough to work over all of 403.gcc
   (although some encodings are probably incorrect). This is a testament to the 
   beauty of X86's MachineInstr, no doubt! ;)

llvm-svn: 80234
2009-08-27 08:12:55 +00:00
Daniel Dunbar c4f0e7e28d llvm-mc: Print encodings after the instruction, and only when we have an asm
printer.

llvm-svn: 80233
2009-08-27 07:58:57 +00:00
Daniel Dunbar 6ec97df98f X86: Mark EH_RETURN as code-gen-only.
llvm-svn: 80232
2009-08-27 07:58:05 +00:00
Daniel Dunbar 212b6d8a57 Add {MCInst,MCOperand}::{print,dump}
llvm-svn: 80231
2009-08-27 07:57:12 +00:00
Chris Lattner d3374e8dfd Implement a new optimization in the inliner: if inlining multiple
calls into a function and if the calls bring in arrays, try to merge
them together to reduce stack size.  For example, in the testcase
we'd previously end up with 4 allocas, now we end up with 2 allocas.

As described in the comments, this is not really the ideal solution
to this problem, but it is surprisingly effective.  For example, on
176.gcc, we end up eliminating 67 arrays at "gccas" time and another
24 at "llvm-ld" time.

One piece of concern that I didn't look into: at -O0 -g with
forced inlining this will almost certainly result in worse debug
info.  I think this is acceptable though given that this is a case
of "debugging optimized code", and we don't want debug info to
prevent the optimizer from doing things anyway.

llvm-svn: 80215
2009-08-27 06:29:33 +00:00
Chris Lattner 1ce61b82ac unbreak the build, yay for symlinks + makefiles. :(
llvm-svn: 80205
2009-08-27 04:43:05 +00:00
Chris Lattner b9d0a961f9 reduce header #include'age
llvm-svn: 80204
2009-08-27 04:32:07 +00:00
Chris Lattner b1cba3f91e enhance InlineFunction to be able to optionally return
a the list of static allocas that it inlined.

llvm-svn: 80203
2009-08-27 04:20:52 +00:00
Chris Lattner d84dbb3443 smallvectorize the list of returns built by CloneAndPruneFunctionInto.
llvm-svn: 80202
2009-08-27 04:02:30 +00:00
Chris Lattner 9d0235dc6b remove CloneTrace, which appears to be dead since 2004.
llvm-svn: 80201
2009-08-27 03:56:43 +00:00
Chris Lattner 5eef6ad6a9 reduce inlining factor some stuff out to a static helper function,
and other code cleanups.  No functionality change.

llvm-svn: 80199
2009-08-27 03:51:50 +00:00
Bill Wendling e5b5d293e9 Revert accidental commit.
llvm-svn: 80198
2009-08-27 03:32:50 +00:00
Bill Wendling c7d230f736 --- Reverse-merging r80147 into '.':
A    include/llvm/ADT/iterator.cmake
U    autoconf/configure.ac
--- Reverse-merging r80161 into '.':
U    cmake/config-ix.cmake
--- Reverse-merging r80171 into '.':
U    Makefile
--- Reverse-merging r80173 into '.':
U    configure
U    include/llvm/Config/config.h.in
--- Reverse-merging r80180 into '.':
A    include/llvm/ADT/iterator.h.in

Despite common miscomceptions, iterator.h is alive and well. It broke the build
bots for several hours. And yet no one bothered to look at them.

Gabor and Doug, please review your changes and make sure that they actually
build before resubmitting them.

llvm-svn: 80197
2009-08-27 03:29:26 +00:00
Dan Gohman 352a49586d Add some checks for MachineCFG consistency. Use AnalyzeBranch and
do extra checking when it succeeds, as those are cases where
CodeGen will be doing particularly interesting CFG modifications.

llvm-svn: 80196
2009-08-27 02:43:49 +00:00
Daniel Dunbar 9cefb135a5 Update CMake
llvm-svn: 80195
2009-08-27 02:08:37 +00:00