Skip to content
  1. Jul 12, 2005
    • Jeff Cohen's avatar
      VC++ demands that the function returns a value · 33b8232c
      Jeff Cohen authored
      llvm-svn: 22393
      33b8232c
    • Nate Begeman's avatar
      Clean up the TargetSubtarget class a bit, removing an unnecessary argument · df8946de
      Nate Begeman authored
      to the constructor.
      
      llvm-svn: 22392
      df8946de
    • Chris Lattner's avatar
      351817b1
    • Chris Lattner's avatar
      Add a note · f873f4d5
      Chris Lattner authored
      llvm-svn: 22390
      f873f4d5
    • Nate Begeman's avatar
      Implement Subtarget support · f26625e1
      Nate Begeman authored
      Implement the X86 Subtarget.
      
      This consolidates the checks for target triple, and setting options based
      on target triple into one place.  This allows us to convert the asm printer
      and isel over from being littered with "forDarwin", "forCygwin", etc. into
      just having the appropriate flags for each subtarget feature controlling
      the code for that feature.
      
      This patch also implements indirect external and weak references in the
      X86 pattern isel, for darwin.  Next up is to convert over the asm printers
      to use this new interface.
      
      llvm-svn: 22389
      f26625e1
    • Nate Begeman's avatar
      Commit some pending darwin changes before subtarget support. · 83b492b8
      Nate Begeman authored
      llvm-svn: 22388
      83b492b8
    • Chris Lattner's avatar
      Fix PR576. · 986675cb
      Chris Lattner authored
      Instead of emitting a JIT stub that looks like this:
      
      internal void %l1_main_entry_2E_ce_wrapper(int) {
      header:
              %resolver = call sbyte* %getPointerToNamedFunction( sbyte* getelementptr ([20 x sbyte]* %l1_main_entry_2E_ce_name, int 0, int 0) )           ; <sbyte*> [#uses=1]
              %resolverCast = cast sbyte* %resolver to void (int)*            ; <void (int)*> [#uses=1]
              call void %resolverCast( int %0 )
              ret void
      }
      
      Emit one that looks like this:
      
      internal void %l1_main_entry_2E_ce_wrapper(int) {
      Entry:
      	%fpcache = load void (int)** %l1_main_entry_2E_ce.fpcache               ; <void (int)*> [#uses=2]
              %isNull = seteq void (int)* %fpcache, null              ; <bool> [#uses=1]
              br bool %isNull, label %lookupfp, label %usecache
      
      usecache:               ; preds = %lookupfp, %Entry
              %fp = phi void (int)* [ %resolverCast, %lookupfp ], [ %fpcache, %Entry ]            ; <void (int)*> [#uses=1]
              call void %fp( int %0 )
              ret void
      
      lookupfp:               ; preds = %Entry
              %resolver = call sbyte* %getPointerToNamedFunction( sbyte* getelementptr ([20 x sbyte]* %l1_main_entry_2E_ce_name, int 0, int 0) )           ; <sbyte*> [#uses=1]
              %resolverCast = cast sbyte* %resolver to void (int)*            ; <void (int)*> [#uses=2]
              store void (int)* %resolverCast, void (int)** %l1_main_entry_2E_ce.fpcache
              br label %usecache
      }
      
      
      This makes the JIT debugger *MUCH* faster on large programs, as
      getPointerToNamedFunction takes time linear with the size of the program, and
      before we would call it every time a function in the text module was called from
      the safe module (ouch!).
      
      llvm-svn: 22387
      986675cb
    • Chris Lattner's avatar
      add a note so I can remember the common t-t's · de69bf99
      Chris Lattner authored
      llvm-svn: 22386
      de69bf99
    • Chris Lattner's avatar
      fix a warning · fd564c6b
      Chris Lattner authored
      llvm-svn: 22385
      fd564c6b
  2. Jul 11, 2005
  3. Jul 10, 2005
  4. Jul 09, 2005
  5. Jul 08, 2005
    • Reid Spencer's avatar
      Ensure that functions like isDirectory don't fail if the file doesn't · 2d85f569
      Reid Spencer authored
      exist but just return false instead.
      
      llvm-svn: 22361
      2d85f569
    • Reid Spencer's avatar
      Make sure we don't error out if an invalid path is used, just simply · 03f6f7a5
      Reid Spencer authored
      exit from isBytecodeLPath with "false".
      
      llvm-svn: 22360
      03f6f7a5
    • Reid Spencer's avatar
      Two changes: · d28e432c
      Reid Spencer authored
      1. Use isValid() to check validity of the resulting path name in the
         eraseSuffix even though we can't think of a case where eraseSuffix could
         possibly cause an invalid path name.
      2. Rewrite isValid() to not use the deprecated realpath function any more.
         It now just uses isascii to make sure all the characters are legit.
      
      llvm-svn: 22359
      d28e432c
    • Chris Lattner's avatar
      Add support for emitting a .data section and .bss section. · 748de6e2
      Chris Lattner authored
      Add support for emitting external and .bss symbols.
      
      llvm-svn: 22358
      748de6e2
    • Jeff Cohen's avatar
      Stamp out tabs · f5067761
      Jeff Cohen authored
      llvm-svn: 22357
      f5067761
    • Jeff Cohen's avatar
      Make Win32 implementation conform to new paradigm · 0e1d7354
      Jeff Cohen authored
      llvm-svn: 22356
      0e1d7354
    • Jeff Cohen's avatar
      Fix eraseSuffix() · 4c24144d
      Jeff Cohen authored
      llvm-svn: 22355
      4c24144d
    • Reid Spencer's avatar
      Final Changes For PR495: · af48d864
      Reid Spencer authored
      This chagne just renames some sys::Path methods to ensure they are not
      misused. The Path documentation now divides methods into two dimensions:
      Path/Disk and accessor/mutator. Path accessors and mutators only operate
      on the Path object itself without making any disk accesses. Disk accessors
      and mutators will also access or modify the file system. Because of the
      potentially destructive nature of disk mutators, it was decided that all
      such methods should end in the work "Disk" to ensure the user recognizes
      that the change will occur on the file system. This patch makes that
      change. The method name changes are:
      
      makeReadable        -> makeReadableOnDisk
      makeWriteable       -> makeWriteableOnDisk
      makeExecutable      -> makeExecutableOnDisk
      setStatusInfo       -> setStatusInfoOnDisk
      createDirectory     -> createDirectoryOnDisk
      createFile          -> createFileOnDisk
      createTemporaryFile -> createTemporaryFileOnDisk
      destroy             -> eraseFromDisk
      rename              -> renamePathOnDisk
      
      These changes pass the Linux Deja Gnu tests.
      
      llvm-svn: 22354
      af48d864
Loading